Directory.EnumerateFiles = & gt; UnauthorizedAccessException

Gibt es eine schöne neue Methode .NET 4.0, um Dateien in einem Verzeichnis in eine streaming-Möglichkeit via enumeration.

Das problem hier ist, dass, wenn man wünscht zum auflisten aller Dateien kann man nicht im Voraus wissen, welche Dateien oder Ordner Zugriff geschützt und kann werfen eine UnauthorizedAccessException.

Zu reproduzieren, kann man nur ausführen dieses fragment:

foreach (var file in Directory.EnumerateFiles(@"c:\", "*", SearchOption.AllDirectories))
{
   //whatever
}

Bevor diese .NETTO-Methode existierte, war es möglich, zu erreichen in etwa die gleiche Wirkung durch die Implementierung einer rekursiven iterator, der auf das string-array zurückgeben von Methoden. Aber es ist nicht ganz so faul wie die neuen .NETTO-Methode ist.

Also, was ist zu tun? Kann die UnauthorizedAccessException unterdrückt werden oder ist eine Tatsache des Lebens, wenn mit dieser Methode?

Scheint mir, dass die Methode sollte eine überlastung haben Sie eine Aktion zum Umgang mit Ausnahmen.

InformationsquelleAutor der Frage Bent Rasmussen | 2011-02-23

Schreibe einen Kommentar