ファイルやディレクトリの監視を行う|C#

      2018/12/29

FileSystemWatcherはディレクトリ内の変更を監視します。変更はイベントで通知されます。
下記サンプルではC:\testディレクトリに対して、directoryWatcherでディレクトリの生成をfileWatcherでJPGファイルの生成を監視しています。

using System.IO;

class Program {

    static void Main(string[] args) {

        FileSystemWatcher directoryWatcher = new FileSystemWatcher();
        FileSystemWatcher fileWatcher = new FileSystemWatcher();

        directoryWatcher.Path = @"C:\test";
        directoryWatcher.NotifyFilter = NotifyFilters.DirectoryName | NotifyFilters.CreationTime;
        directoryWatcher.Created += delegate (object sender, FileSystemEventArgs e) {
            Console.WriteLine(e.FullPath);
        };

        fileWatcher.Path = @"C:\test";
        fileWatcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.CreationTime;
        fileWatcher.Filter = "*.jpg";

        fileWatcher.Created += OnCreatedFile;
        // 違う記述方法.
        //fileWatcher.Created += new FileSystemEventHandler(OnCreatedFile);

        directoryWatcher.EnableRaisingEvents = true;
        fileWatcher.EnableRaisingEvents = true;

        // 2分で監視を終える.
        Thread.Sleep(120 * 1000);

        directoryWatcher.EnableRaisingEvents = false;
        fileWatcher.EnableRaisingEvents = false;
    }

    private static void OnCreatedFile(object sender, FileSystemEventArgs e) {
        Console.WriteLine(e.FullPath);
    }
}

ちなみに上記では、Createdイベントのサブスクライブを匿名メソッドとイベントハンドラーのアタッチ形式の2種類で記述しています。

 - C#