Как отслеживать изменения в папке C#?

Подскажите, как лучше отслеживать изменения в папке (сетевой диск), нужно, чтобы при изменении каких-либо файлов программа могла определить, какие именно изменились, при этом каждый раз не сканируя размер или дату изменения у 6700 файлов :)
  • Вопрос задан
  • 4631 просмотр
Пригласить эксперта
Ответы на вопрос 2
@grafmania
Странно но в MSDN пишут что работает по сети

Use FileSystemWatcher to watch for changes in a specified directory. You can watch for changes in files and subdirectories of the specified directory. You can create a component to watch files on a local computer, a network drive, or a remote computer.


Возможно у вас с этим проблема?

ОС Windows уведомляет компонент об изменениях файлов в буфере, созданном объектом FileSystemWatcher. Если в течение короткого времени происходит много изменений, буфер может переполниться. В результате этот компонент не сможет отслеживать изменения в каталоге и будет давать только общие уведомления. Увеличение размера буфера с использованием свойства InternalBufferSize сопряжено с большими накладными расходами, поскольку он формируется не в выгружаемой памяти и не может быть подкачан с диска, поэтому буфер следует делать как можно меньше, в то же время он должен быть достаточно большим, чтобы не пропустить какие-либо события, связанные с изменениями файлов. Чтобы устранить переполнение буфера, используйте свойства NotifyFilter и IncludeSubdirectories для фильтрации ненужных уведомлений.
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Простите, а какая задача изначально стоит, может решение задачи стоит сменить на более целесообразное, например включить штатный системный аудит windows доступа к файлам их редактированию и удалению и обрабатывать из с# системные отчеты?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы