4 Stimmen

Wie erhält man den Pfad, der eine UnauthorizedAccessException ausgelöst hat?

Würde jemand wissen, wenn Sie eine UnauthorizedAccessException in C# seine möglich, den Pfad zugreifen, die es ausgelöst hat? Ich möchte nicht die Fehlermeldung nur den Pfad, der das Problem verursacht. Der Try-Catch-Block habe ich könnte auf eine Reihe von verschiedenen zu fangen, aber ich brauche, um es zu melden und weiter zum nächsten Verzeichnis/Datei ohne Hinzufügen der gesamten Ausnahmemeldung.

4voto

Marc Gravell Punkte 970173

Vielleicht machen Sie Ihre Fehlerbehandlung mehr granular, so dass Sie nur einen einzigen Versuch abfangen, wenn es explodiert? Sie könnten dies tun (ohne sich zu wiederholen), indem Sie den fehlerhaften Code in eine Dienstprogramm-Methode umwandeln - z. B.

TryCopyFile(path1);
TryCopyFile(path2);
TryCopyFile(path3);

Dónde TryCopyFile fängt die Ausnahme ab und protokolliert den (einzigen) Pfad, der als Argument übergeben wurde.

1voto

Keltex Punkte 25852

In der Eigenschaft Message der UnauthorizedAccessException sehen Sie etwa Folgendes:

Access to the path 'E:\Domains\xxx\wwwroot\Images\main.aspx' is denied.

Sie können den Pfad aus dieser Nachricht auslesen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X