Надежный способ мониторинга изменений файлов в каталоге с помощью .NET Framework - PullRequest
5 голосов
/ 31 января 2011

Я ищу надежный способ поиска изменений в каталоге.

Я пытался использовать FileSystemWatcher, но он довольно неточен, когда много маленьких файлов создаются, изменяются или удаляются.Он пропускает около 1 или 2% файлов в моих тестах.Это довольно много, когда вы быстро добавляете или меняете тысячи файлов.

Я пробовал опрашивать изменения с разными интервалами 500 мс, 2000 мс и т. Д. В этом случае я получаю слишком много обращений.Это может быть связано с разрешением временных меток объекта FileInfo.

Так что мой вопрос таков;Можно ли с помощью .NET Framework надежно получить изменения в каталоге?

- Christian

1 Ответ

7 голосов
/ 31 января 2011

Вы пытались увеличить InternalBufferSize ?Какой размер вы установили?

С MSDN :


Обратите внимание, что FileSystemWatcher может пропустить событие при превышении размера буфера.Чтобы избежать пропущенных событий, следуйте этим рекомендациям: Увеличьте размер буфера, установив свойство InternalBufferSize.Избегайте просмотра файлов с длинными именами файлов, потому что длинное имя файла способствует заполнению буфера.Попробуйте переименовать эти файлы, используя более короткие имена.


Сохраняйте код обработки событий как можно более коротким.

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