Heim > Backend-Entwicklung > C++ > Wie gehe ich mit „UnauthorizedAccessException'-Fehlern um, wenn ich „Directory.GetFiles' verwende?

Wie gehe ich mit „UnauthorizedAccessException'-Fehlern um, wenn ich „Directory.GetFiles' verwende?

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

How to Handle `UnauthorizedAccessException` Errors When Using `Directory.GetFiles`?

Auflösen Directory.GetFilesausgelöste UnauthorizedAccessExceptionAusnahme

Wenn Sie Directory.GetFiles zum Abrufen eines Dateipfads verwenden, kann es zu einer UnauthorizedAccessException-Ausnahme kommen, wenn das Programm keine Zugriffsrechte für einen bestimmten Ordner im angegebenen Verzeichnis hat. Diese Ausnahme tritt auf, nachdem die Methode versucht hat, auf einen nicht zugänglichen Ordner zuzugreifen, was dazu führt, dass der Vorgang vorzeitig beendet wird.

Um dieses Problem zu lösen, wird empfohlen, einen iterativen Ansatz zu verwenden, anstatt zu versuchen, auf einmal auf den gesamten Verzeichnisbaum zuzugreifen. Das folgende Codebeispiel zeigt, wie ein Verzeichnis sicher untersucht und Dateien gesammelt 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 ex)
    {
        // 以优雅的方式处理访问被拒绝的异常。
        // 可以记录问题或继续处理下一个目录。
        // 例如:Console.WriteLine($"Access denied to directory: {path}, Exception: {ex.Message}");
    }
}</code>
Nach dem Login kopieren

Indem Sie die Verzeichnisse einzeln prüfen, können Sie vermeiden, dass der gesamte Vorgang abgebrochen wird, wenn der Zugriff auf einen bestimmten Ordner verweigert wird. Dadurch kann das Programm weiterhin Dateien in dem Verzeichnis verarbeiten, auf das es Zugriffsrechte hat. Diese Methode verarbeitet die Ergebnisse von Directory.GetFiles klarer als das ursprüngliche Beispiel, vermeidet unnötige ToList()- und ForEach()-Aufrufe und verbessert die Effizienz und Lesbarkeit des Codes.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit „UnauthorizedAccessException'-Fehlern um, wenn ich „Directory.GetFiles' 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