Heim > Backend-Entwicklung > C++ > Wie kann ich UnauthorizedAccessException bei Verwendung von Directory.GetFiles ordnungsgemäß behandeln?

Wie kann ich UnauthorizedAccessException bei Verwendung von Directory.GetFiles ordnungsgemäß behandeln?

Mary-Kate Olsen
Freigeben: 2025-01-07 15:11:45
Original
510 Leute haben es durchsucht

How Can I Gracefully Handle UnauthorizedAccessException When Using Directory.GetFiles?

Robuster Dateiabruf: Behandlung von UnauthorizedAccessException in Directory.GetFiles

Bei Dateisystemvorgängen treten häufig Berechtigungsprobleme auf, was bei Verwendung von UnauthorizedAccessException zu Directory.GetFiles führt. Diese Ausnahme stoppt normalerweise den gesamten Prozess, wenn ein einzelnes Verzeichnis gefunden wird, auf das nicht zugegriffen werden kann. Eine robustere Lösung besteht darin, den Verzeichniszugriff individuell zu prüfen.

Dieser verbesserte Ansatz, der unten detailliert beschrieben wird, durchläuft jedes Verzeichnis und ermöglicht so eine reibungslose Handhabung von Zugriffsbeschränkungen.

Lösung zum selektiven Dateiabruf

Die Methode AddFiles verarbeitet Verzeichnisse rekursiv. Es verwendet Lambda-Ausdrücke, um Dateipfade zu einer Liste hinzuzufügen, wobei Verzeichnisse mit eingeschränktem Zugriff ignoriert werden.

<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)
    {
        // Ignore access denied errors and continue processing other directories.
    }
}</code>
Nach dem Login kopieren

Diese überarbeitete Methode behandelt effizient UnauthorizedAccessException Ausnahmen innerhalb eines try-catch Blocks. Das Programm setzt die Ausführung fort und sammelt Dateien aus zugänglichen Verzeichnissen, ohne abzustürzen. Dies sorgt für eine bessere Kontrolle und verhindert eine vorzeitige Beendigung aufgrund von Zugriffsbeschränkungen. Die Verwendung von foreach-Schleifen verbessert die Lesbarkeit im Vergleich zum ursprünglichen ToList().ForEach()-Ansatz.

Das obige ist der detaillierte Inhalt vonWie kann ich UnauthorizedAccessException bei Verwendung von Directory.GetFiles ordnungsgemäß behandeln?. 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