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

Материал из Вики проекта 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.