Отслеживание изменений в файловой системе

Материал из Вики проекта PascalABC.NET
Перейти к: навигация, поиск

Для отслеживания изменений в файловой системе (изменение, переименование, удаление файлов и папок) используется класс System.IO.FileSystemWatcher. Он позволяет подписаться на соответствующие события и задавать фильтр для файлов и папок.

Ниже приведен пример кода, отслеживающий изменения файлов с расширением .txt в текущем каталоге.

{$reference System.Windows.Forms.dll}
 
uses
  System, System.IO, System.Windows.Forms;
 
procedure FileSystemChanged(source: object; e: FileSystemEventArgs);
begin
  writeln('Изменился файл '+e.Name);
end; 
 
procedure FileSystemCreated(source: object; e: FileSystemEventArgs);
begin
  writeln('Создан файл '+e.Name);
end;
 
procedure FileSystemDeleted(source: object; e: FileSystemEventArgs);
begin
  writeln('Удален файл '+e.Name);
end;
 
var 
  watcher: FileSystemWatcher;
 
begin
  watcher := new FileSystemWatcher(GetCurrentDir());
  watcher.EnableRaisingEvents := true;
  watcher.Filter := '*.txt';
  watcher.Changed += FileSystemChanged;
  watcher.Created += FileSystemCreated;
  watcher.Deleted += FileSystemDeleted;
  Application.Run();
end.
Персональные инструменты