Heim >Backend-Entwicklung >C++ >Wie kann ich den Schreibzugriff auf ein Verzeichnis in C# zuverlässig testen?
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!