Heim > Backend-Entwicklung > C++ > Wie kann ich Berechtigungsfehler ignorieren, wenn ich Directory.GetFiles() verwende?

Wie kann ich Berechtigungsfehler ignorieren, wenn ich Directory.GetFiles() verwende?

DDD
Freigeben: 2025-01-27 23:06:10
Original
792 Leute haben es durchsucht

How Can I Ignore Permission Errors When Using Directory.GetFiles()?

Die Datei- und Dateiordnerberechtigungen in Verzeichnis.getFiles () Behandeln Sie das Problem der Datei- und Dateiordnerberechtigungen

elegant um Wenn die Dateien im Verzeichnis Aufzählungsverzeichnis verwendet werden, können Hindernisse auftreten, wenn der geschützte Ordner oder die Datei auftritt. Dies kann dazu führen, dass der Dateilistenprozess aufgrund von Anomalien plötzlich aufhört. Wenn Sie diese eingeschränkten Elemente jedoch elegant ignorieren und weiterhin zugängliche Dateien durchqueren möchten, was soll ich tun?

Der Schlüssel besteht darin, den Parameter Directory.GetFiles() aufzugeben und die Rekursion manuell zu verarbeiten. Sie können den Prozess sorgfältiger steuern, indem Sie jedes Unterverzeichnis überprüfen.

Bitte betrachten Sie das folgende Codefragment: AllDirectories

In diesem Code verwenden wir die Kommission (

), um die Operation jeder gefundenen Datei anzugeben.
<code class="language-csharp">using System;
using System.IO;

static class Program
{
    static void Main()
    {
        string path = ""; // TODO
        ApplyAllFiles(path, ProcessFile);
    }
    static void ProcessFile(string path) {/* ... */}
    static void ApplyAllFiles(string folder, Action<string> fileAction)
    {
        try
        {
            foreach (string file in Directory.GetFiles(folder))
            {
                fileAction(file);
            }
        }
        catch (UnauthorizedAccessException)
        {
            // 处理异常
        }
        catch (Exception ex)
        {
            // 处理其他异常
        }

        foreach (string subDir in Directory.GetDirectories(folder))
        {
            try
            {
                ApplyAllFiles(subDir, fileAction);
            }
            catch (UnauthorizedAccessException)
            {
                // 处理异常,例如记录错误信息或忽略
            }
            catch (Exception ex)
            {
                // 处理其他潜在异常
            }
        }
    }
}</code>
Nach dem Login kopieren
Erforschen Sie das Verzeichnis rekursiv, erfassen Sie alle

und setzen Sie seine Erkundung fort. Action<string> ApplyAllFiles() Durch das manuelle Management rekursiv können Sie die unersetzlichen Ordner oder Dateien effektiv umgehen, um sicherzustellen, dass die autorisierten Elemente nur verarbeitet werden, ohne Ihren Dateilistenvorgang zu unterbrechen. Der verbesserte Code verarbeitet auch , um ein robusteres Programm zu gewährleisten. UnauthorizedAccessException

Das obige ist der detaillierte Inhalt vonWie kann ich Berechtigungsfehler ignorieren, 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage