2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

フォルダ監視クラス TFolderWatch (Delphi)

Last updated at Posted at 2025-07-18

概要

このライブラリは、Delphi環境で特定フォルダの変更を監視するためのクラス TFolderWatch を提供します。
ファイルの追加・更新・削除などをイベントで通知でき、サブフォルダの監視や通知フィルタの設定も可能です。

特徴

  • FindFirstChangeNotification APIを利用した軽量な監視
  • フォルダ内ファイルのスナップショット比較による変更検出
  • サブフォルダの再帰監視対応(オプション)
  • FILE_NOTIFY_CHANGE_* ビットフラグで柔軟な監視フィルタ設定
  • 初回スキャンは通知せずスナップショットの保存のみ(設定可能)
  • 標準フィルターによりブラウザの作業ファイルには反応しない(追加可能)

使用方法

var
  Watcher: TFolderWatch;
begin
  Watcher := TFolderWatch.Create;
  Watcher.FolderPath := 'C:\MyFolder';
  Watcher.IncludeSubFolders := True;
  Watcher.OnFileChange := procedure(Sender: TObject; const AddList, DelList, ModList: TStringList)
    begin
      // ここで変更を処理する
    end;
  Watcher.Start;
end;

インストール

このクラスは単一ユニットで構成されており、他の依存ライブラリは不要です。
ユニットファイルをプロジェクトに追加するだけで使用可能です。

イベント

一括でイベント処理を担うOnFileChangeと別々に発生するOnFileAdd、OnFileDelete、OnFileUpdateイベントがあります。

  • OnFileChange: ファイルの追加・削除・更新を個別のリストで通知
  • OnFileAdd: ファイルの追加をリストで通知
  • OnFileDelete: ファイルの削除をリストで通知
  • OnFileUpdate: ファイルの更新をリストで通知

注意点

  • Start を呼び出すまでは監視は開始されません
  • Stop を呼び出すことでスレッドを停止・解放します
  • 初回の変更通知を無視したい場合は FirstScanDone := True を設定してください

配布

対応環境

  • Delphi 10 以降推奨(TDateTimeSearchRec.TimeStamp を使用)

ライセンス

MIT License 再配布、変更可能、自由にお使い下さい

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?