Wie kann ich in C# alle Dateien und Ordner eines Verzeichnisses zählen?
Hallo Community!
Ich habe folgenden C# Code:
int fileCount, dirCount;
fileCount = Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "*", SearchOption.AllDirectories).Length;
Console.WriteLine(fileCount);
Wenn ich diesen Code ausführe, bekomme ich eine UnauthorizedAccessException, da das Programm keinen Zugriff auf ein Unterverzeichnis meines Benuterverzeichnisses hat. Kann ich das irgendwie umgehen? Ich möchte die Anzahl aller Dateien und Ordner in meinem Userverzeichnis zählen und da ist diese Exception ziemlich nervig. Ich möchte alle Unterverzeichnisse durchgehen, um zu wissen, wie viele Objekte sich in meinem Userverzeichnis befinden.
Danke schon mal im Voraus.

2 Antworten
Rekursion.
Du brauchst eine eigene Methode, die einen Ordnerpfad als Parameter entgegennimmt und die Anzahl der enthaltenen Dateien zurückgibt. Sollte der Pfad weitere Ordner enthalten, lässt du die gleiche Methode mit dem neuen Ordner aufrufen. Das umschließt du mit einen try-Block und fängst die Ausnahme ab, damit solche System-Ordner übersprungen werden.
Du findest sicherlich genug Beispiele dazu im Internet.
Visual Studio als Administrator starten.
Gruß
Das löst das Problem vielleicht während des Debuggens. Was ist aber, wenn ich das Programm als Scheduled Task laufen lassen will?