Есть ли какие-либо особые соображения (кроме разрешений), которые вы должны учитывать при реализации FSW для мониторинга подключенного сетевого диска. Будет ли FSW генерировать исключение, если диск теряет соединение? Если нет (или если я просто поймаю / обработаю это исключение), будет ли достаточно опроса свойства DirectoryInfo.Exists для проверки соединения?
FileSystemWatcher на подключенном сетевом диске
Ответы (1)
Что ж, я использовал FileSystemWatcher
для наблюдения за общей папкой, которая существует на другом компьютере в сети, и вот мой опыт:
- Проверить соединение можно через
File.Exists
илиFolder.Exists
. FileSystemWatcher
не вызовет исключения, если вы потеряете соединение с этой общей папкой. Вместо этого при потере соединения вы получите следующее сообщение об ошибке: «Указанное сетевое имя больше не доступно». Когда вы получите эту ошибку,FSW
больше не будет обрабатывать какие-либо данные, даже если соединение будет восстановлено, поэтому обработайте событиеFileSystemWatcher.Error
и, если возникнет ошибка, снова сбросьтеEnableRaisingEvents
наtrue
или повторно инициализируйтеFSW
person
Jalal Said
schedule
17.07.2011
Я столкнулся с той же проблемой с FSW, который использовал. Но, по крайней мере, с .NET 4, я обнаружил, что все, что мне нужно сделать после возврата общего ресурса, - это установить
EnableRaisingEvents
в false
(на самом деле это было сделано в обработчике FSW_Error), а затем, когда общий ресурс вернулся, установите EnableRaisingEvents
в true
. Он снова начал набирать обороты.
- person Jim; 05.09.2012
Полезно знать, это лучше, чем повторная инициализация :)
- person Jalal Said; 06.09.2012