Как получить путь, который бросил UnauthorizedAccessException? - PullRequest
4 голосов
/ 06 мая 2009

Кто-нибудь знает, если при перехвате UnauthorizedAccessException в C # возможно получить доступ к пути, который его выбросил? Я не хочу сообщение об ошибке только путь, который вызвал проблему. Блок try catch, который у меня есть, может поймать несколько разных, но мне нужно сообщить об этом и перейти к следующему каталогу / файлу без добавления всего сообщения об исключении.

Ответы [ 2 ]

4 голосов
/ 06 мая 2009

Может быть, сделать вашу обработку ошибок более детальной, чтобы вы ловили только одну попытку, когда она взорвется? Вы можете сделать это (не повторяя себя) путем рефакторинга кода, вызывающего проблемы, в служебный метод - т.е.

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

Где TryCopyFile перехватывает исключение и записывает (одиночный) путь, который был передан в качестве аргумента.

1 голос
/ 06 мая 2009

В свойстве Сообщение UnauthorizedAccessException вы увидите что-то вроде этого:

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

Вы можете разобрать путь из этого сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...