FileSystemWatcher работает некорректно - C#

Узнай цену своей работы

Формулировка задачи:

В программе имеется FileSystemWatcher, настроенный на мониторинг всех изменений во всех папках на диске. При безвозвратном удалении файла с этого диска событие OnDeleted элемента срабатывает, а вот при перемещении файла или его удалении в Корзину (т.е. то же перемещение в папку D:\Recycle.Bin) ни одно из событий Watcher'а не срабатывает (даже OnError). Пробовал увеличить размер InternalBuffer'а, безрезультатно. Что можно с этим сделать? Или какие есть альтернативы этому компоненту? Заранее спасибо за ответы/советы.

Решение задачи: «FileSystemWatcher работает некорректно»

textual
Листинг программы
static void Main()
{
    FileSystemWatcher watcher = new FileSystemWatcher(".\\", "*");
    watcher.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.CreationTime | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.Security | NotifyFilters.Size;
    watcher.Renamed += new RenamedEventHandler(WatcherCallback);
    watcher.Changed += new FileSystemEventHandler(WatcherCallback);
    watcher.Created += new FileSystemEventHandler(WatcherCallback);
    watcher.Deleted += new FileSystemEventHandler(WatcherCallback);
    watcher.InternalBufferSize = 10000;
    watcher.IncludeSubdirectories = true;
    watcher.EnableRaisingEvents = true;
 
    Console.ReadLine();
}
 
static void WatcherCallback(object sender, FileSystemEventArgs e)
{
    Console.WriteLine("{0} -> {1}", e.FullPath, e.ChangeType);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы