2013-10-09 2 views
0

Есть ли способ увидеть, что именно изменилось при вызове OnChanged? Я пытаюсь отфильтровать изменения атрибутов файла.FileSystemWatcher Событие OnChanged

+0

Если вы не знали, что [FileSystemWatcher не всегда ведет себя] (http://stackoverflow.com/questions/239988/filesystemwatcher-vs-polling-to-watch-for-file-changes). – Mike

ответ

2

Метод предоставляет аргумент типа FileSystemEventArgs, который поставляет данные о типе и пути изменения.

Вы можете использовать это, чтобы фильтровать только значение WatcherChangeTypes.Changed, которое:

Изменение файла или папки. К типам изменений относятся: изменения по размеру, атрибутам, настройкам безопасности, последней записи и последнему доступу времени. Ответ

знакомства @ Оливер для дополнительной информации на этот ответ, я как раз собирался добавить, что :)

2

Вы можете использовать NotifyFilter свойство, чтобы указать, какие изменения вы хотите наблюдать. Как уже указывал Rotem, класс FileSystemEventArgs также предоставляет некоторую информацию об изменении.

0

Я не думаю, что вы можете отфильтровать что-либо столь же зернистое, как и какие атрибуты были изменены. Вы можете использовать свойство NotifyFilters, чтобы указать, что вы хотите только увеличивать события при изменении атрибутов файлов. Событие возникает, когда каждое изменение происходит, поэтому вы можете в ответ на событие просто создать класс FileInfo с предоставленным путем файла и проверить новые атрибуты.

Смежные вопросы