Может ли наблюдатель файла прочитать содержимое папки, которая упала по наблюдаемому пути? - PullRequest
2 голосов
/ 14 мая 2019

У меня есть служба Windows, которая отслеживает путь на моем ПК.Моя проблема заключается в том, что у меня возникла проблема со службой, и мне пришлось ее остановить и исправить. Теперь в отслеживаемом пути есть новые файлы в подкаталогах, которые не обрабатываются, потому что служба не работает.Я хочу иметь возможность вырезать папку из пути и вставить ее, и мой сервис должен затем обнаружить папку, и эта часть работает нормально, но не продолжает и читает файлы внутри папки.

Нижекак настроен наблюдатель файла

fileSystemWatcher1.Path = filePath;
fileSystemWatcher1.EnableRaisingEvents = true;
fileSystemWatcher1.IncludeSubdirectories = true;
fileSystemWatcher1.InternalBufferSize = fsWatcherBuffer;
fileSystemWatcher1.Created += new 
FileSystemEventHandler(fileSystemWatcher1_Created);
fileSystemWatcher1.Changed += new 
FileSystemEventHandler(fileSystemWatcher1_Changed);

1 Ответ

0 голосов
/ 14 мая 2019

Я провел несколько экспериментов с моей ОС Windows 10, и кажется, что перемещение подпапки вызывает только одно событие Created для перемещенного каталога, но вставка при копировании подпапки вызывает события Created и Changed для подпапки.и все его содержимого (глубоко).

Мои наблюдения не соответствуют документации , хотя:

Операционная система иОбъект FileSystemWatcher интерпретирует действие вырезания и вставки или действие перемещения как действие переименования для папки и ее содержимого.Если вы вырезаете и вставляете папку с файлами в просматриваемую папку, объект FileSystemWatcher сообщает только о новой папке, но не о ее содержимом, потому что они по существу только переименовываются.

Чтобы получить уведомление о том, что содержимое папок было перемещено или скопировано в отслеживаемую папку, предоставьте методы обработчика событий OnChanged и OnRenamed

Также из здесь :

Если в поддереве просматриваемого каталога создается каталог, а для параметра IncludeSubdirectories задано значение true, этот каталог будет автоматически отслеживаться.

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