Основы C# Урок 62. Класс FileSystemWatcher - пример использования
Вот пример использования класса FileSystemWatcher. В данном примере мы отслеживаем события переименования, удаления, создания и изменения размера файла.
using System;
using System.IO;
namespace SystemWatcher
{
class Class1
{
staticvoid Main(string[] args)
{
FileSystemWatcher watcher = new FileSystemWatcher(@"c:\tmp");
// Следим за изменением имени и размера файлов.
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.Size;
// Добавляем обработчики для событий.
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
Console.WriteLine("Press 'q' to exit");
while (Console.Read() != 'q') ;
}
// Обработчик для события переименования файла.privatestaticvoid OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine("{0} renamed to {1}", e.OldName, e.Name);
}
// Обработчик для остальных события файла.privatestaticvoid OnChanged(object source, FileSystemEventArgs e)
{
switch (e.ChangeType)
{
case WatcherChangeTypes.Deleted:
Console.WriteLine("{0} - deleted", e.Name);
break;
case WatcherChangeTypes.Created:
Console.WriteLine("{0} - created", e.Name);
break;
case WatcherChangeTypes.Changed:
Console.WriteLine("{0} - changed", e.Name);
break;
}
}
}
}
Обратите внимание, что для обработчика события Changed мы установили фильтр: