Отслеживаем изменения файловой системы
В API есть несколько функций, позволяющих осуществлять контроль за файловой системой. Так же необходимо подключить компонент TDirWatcher, который содержиться в демонстрационно проекте.
Следующий цикл показывает, как можно получать сообщения о изменениях файловой системы:
var
ChangeHandle: THandle;
...
ChangeHandle:= FindFirstChangeNotification(PChar(WatchPath),
false, hNotifyFilter);
if ChangeHandle <> INVALID_HANDLE_VALUE then
while true do
begin
if WaitForSingleObject(ChangeHandle,500) = WAIT_OBJECT_0 then
begin
// Событие...
end;
FindNextChangeNotification(ChangeHandle);
end;
|
Компонент TDirWatcher http://www.sources.ru/delphi/DirWatcher.zip, используемый в этом цикле, запускается в собственном потоке. При изменениях в указанной дирректории или поддирректории возникает событие OnChange.
|