Bekomme ich eine UnautorizedAccessException
dieser code ausgeführt:
string[] fileList = Directory.GetFiles(strDir, strExt);
Die Ausnahme tritt in c:\users\username\appdata
Wie kann ich überprüfen, ob ich Zugriff haben (zum anzeigen und Lesen von Dateien) ?
- Sie haben bereits einen Weg, um check - GetFiles 🙂 Was ist Los mit fangen?
- Es ist langsam, wenn Sie exceptions fangen.
Zunächst, ich würde Sie manuell überprüfen Sie die Berechtigungen und sehen, was Sie blockiert und was nicht. Ich bin mit so etwas zu prüfen, für die Berechtigungen (für copy file):
Außerdem gibt es einige seltsame Fälle, in denen ein bestimmter rechts auf den Ordner, ändert die Rechte für die Dateien unabhängig von Ihren individuellen Berechtigungen (werden sehen, ob ich finden kann, was es ist).
Überprüfen Sie Artikel auf der code-Projekt, das über das, was Sie brauchen, das ist Klasse erstellt : Das Ziel dieser Klasse ist es, eine einfache Antwort auf eine Häufig gestellte Frage, "habe ich die Berechtigung zum Lesen oder Schreiben in dieser Datei?".
Eine einfache Möglichkeit zu testen, individuelle Zugriffsrechte für eine bestimmte Datei und Benutzer
Hinweis: die post kann nicht den ganzen code hier, weil Ihr zu lange.
Erstens, rufen Sie
Directory.GetFiles
für root-Verzeichnis. FangenUnauthorizedAccessException
- wenn keine, haben Sie vollen Zugriff.Wenn er erwischt wird - Aufruf der Funktion für jedes Unterverzeichnis rekursiv, die Ausnahme abfangen, wenn er erwischt wird - fügen Sie wie-dir-zu-Liste.
Schreiben Sie eine rekursive Funktion mit der externen Liste für verbotene dirs