Heim > Backend-Entwicklung > C++ > Wie kann ich mit UnauthorizedAccessException umgehen, wenn ich Directory.GetFiles zum Durchsuchen von Verzeichnissen verwende?

Wie kann ich mit UnauthorizedAccessException umgehen, wenn ich Directory.GetFiles zum Durchsuchen von Verzeichnissen verwende?

Mary-Kate Olsen
Freigeben: 2025-01-07 15:06:44
Original
851 Leute haben es durchsucht

How Can I Handle UnauthorizedAccessException When Using Directory.GetFiles to Traverse Directories?

Behandeln Sie elegant die UnauthorizedAccessException-Ausnahme, die auftritt, wenn Directory.GetFiles das Verzeichnis durchläuft

Beim Ausführen von Datei- und Verzeichnisvorgängen kann es bei Verwendung der Directory.GetFiles-Methode zu UnauthorizedAccessException-Ausnahmen kommen. Diese Ausnahme tritt auf, wenn eine Methode versucht, auf ein Verzeichnis zuzugreifen, für das der Benutzer nicht über die entsprechenden Berechtigungen verfügt.

Um dieses Problem zu lösen, wird empfohlen, die Verzeichnisse einzeln zu untersuchen, anstatt den gesamten Verzeichnisbaum zu durchsuchen. Dieser Ansatz ermöglicht eine genauere Kontrolle über den Betrieb. Der folgende Code demonstriert einen verbesserten Ansatz:

<code class="language-csharp">private static void AddFiles(string path, IList<string> files)
{
    try
    {
        foreach (string file in Directory.GetFiles(path))
        {
            files.Add(file);
        }

        foreach (string subdirectory in Directory.GetDirectories(path))
        {
            AddFiles(subdirectory, files);
        }
    }
    catch (UnauthorizedAccessException ex)
    {
        // 忽略此目录的访问权限错误,继续处理其他目录
    }
}</code>
Nach dem Login kopieren

Bei dieser Methode wird UnauthorizedAccessException erfasst und ordnungsgemäß verarbeitet, sodass das Programm die Ausführung fortsetzen und möglicherweise andere zugängliche Dateien entdecken kann. Die Iteration wird durch die Verzeichnishierarchie fortgesetzt und ruft sich selbst rekursiv auf, um Unterverzeichnisse zu erkunden.

Durch die Verwendung dieser Technik können Sie Directory.GetFiles Methodenabbrüche aufgrund von Zugriffsverweigerungsfehlern vermeiden und die Kontrolle über den Verzeichnisdurchlaufprozess behalten. Diese Methode verwendet eine foreach-Schleife anstelle von ToList().ForEach(), wodurch sie lesbarer und effizienter wird.

Das obige ist der detaillierte Inhalt vonWie kann ich mit UnauthorizedAccessException umgehen, wenn ich Directory.GetFiles zum Durchsuchen von Verzeichnissen verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage