Heim >Backend-Entwicklung >C++ >Wie kann ich den Schreibzugriff auf ein Verzeichnis in C# zuverlässig testen?

Wie kann ich den Schreibzugriff auf ein Verzeichnis in C# zuverlässig testen?

DDD
DDDOriginal
2025-01-09 07:37:45704Durchsuche

How Can I Reliably Test Write Access to a Directory in C#?

Eine robustere Methode zur Überprüfung des Schreibzugriffs auf ein Verzeichnis in C#

Die direkte Überprüfung der Verzeichnisschreibberechtigungen kann unzuverlässig sein. Das bloße Abfragen von Berechtigungen garantiert keinen tatsächlichen Schreibzugriff. Ein zuverlässigerer Ansatz besteht darin, einen Schreibvorgang zu versuchen.

Hier ist eine verbesserte Methode:

<code class="language-csharp">public bool IsDirectoryWritable(string dirPath, bool throwIfFails = false)
{
    try
    {
        // Create a temporary file to test write access.  It's automatically deleted.
        using (FileStream fs = File.Create(Path.Combine(dirPath, Path.GetRandomFileName()), 1, FileOptions.DeleteOnClose)) { }
        return true;
    }
    catch (Exception ex)
    {
        if (throwIfFails)
            throw; // Re-throw the exception for higher-level handling
        else
            return false;
    }
}</code>

Diese Funktion versucht, eine temporäre Datei im Zielverzeichnis zu erstellen. Das FileOptions.DeleteOnClose stellt sicher, dass die Datei automatisch entfernt wird und keine Spuren hinterlässt. Erfolg zeigt Schreibzugriff an; Der Fehler gibt false zurück (oder löst die Ausnahme aus, wenn throwIfFails wahr ist). Dadurch wird die Schreibfähigkeit direkt getestet und die Fallstricke vermieden, die entstehen, wenn man sich ausschließlich auf Berechtigungsprüfungen verlässt. Es ist prägnant und leicht zu verstehen.

Das obige ist der detaillierte Inhalt vonWie kann ich den Schreibzugriff auf ein Verzeichnis in C# zuverlässig testen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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