Как я могу определить, существует ли каталог на сетевом диске или нет?

Я просматриваю каталоги на сетевом диске, но некоторые каталоги плохие ReparsePoints и на самом деле не существуют.

Использование Directory.Exists возвращает true примерно через 30 секунд, как и new DirectoryInfo(dir).Exists, однако попытка открыть папку в проводнике Windows возвращает следующее сообщение об ошибке:

I:\MyFolder недоступен.

Сетевой путь не найден.

Попытка получить доступ к содержимому каталога с помощью dir.GetDirectories() вызывает исключение, поскольку путь не существует, как и другие методы, такие как dir.GetAccessControl().

Есть ли способ определить, существует ли сетевой путь или нет, когда для папки существует допустимый ReparsePoint?

Единственными атрибутами папки являются Directory, ReparsePoint


person Rachel    schedule 27.09.2013    source источник
comment
Разве ваш недавний вопрос не об этом? stackoverflow .com/questions/18750974/   -  person James Sampica    schedule 28.09.2013
comment
@Shoe Это определенно связано, но я не был уверен, следует ли мне редактировать это или нет, поскольку вопрос немного отличается, а ответ уже опубликован. Цель 1-го вопроса заключалась в том, чтобы найти другой способ определения атрибутов каталога, который не сталкивается с падением производительности в каталогах с плохой повторной обработкой, в то время как этот вопрос заключается в том, чтобы определить, существует ли каталог на самом деле или нет. В настоящее время я проверяю атрибуты в другом потоке и предполагаю, что это плохо, если он не возвращает результат в течение 3 секунд, но предполагая, что это плохо, не работает для моей текущей логики.   -  person Rachel    schedule 28.09.2013