2

FileSystemWatcher クラスを使用してディレクトリをリッスンし、変更の種類と変更されたファイルの完全なパスを単に出力する WCF Web サービスの概念実証を開発しようとしています。

期待どおりに動作するサンプル コンソール アプリケーションがありますが、これを WCF ライブラリに移植すると、ファイル変更のイベント ハンドラーが起動しません。

コード:

    public void MonitorFolder()
    {
        System.IO.FileSystemWatcher watcher = new System.IO.FileSystemWatcher();
        watcher.Path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "folder-to-watch");
        watcher.IncludeSubdirectories = false;
        watcher.Changed += watcher_Changed;
        watcher.Filter = "*.*";
        watcher.NotifyFilter = NotifyFilters.LastAccess |
                     NotifyFilters.LastWrite |
                     NotifyFilters.FileName |
                     NotifyFilters.DirectoryName;
        watcher.EnableRaisingEvents = true;
    }

    void watcher_Changed(object sender, System.IO.FileSystemEventArgs e)
    {
        Console.WriteLine(string.Format("Change: {0}, File: {1}", e.ChangeType, e.FullPath));
    }

そして、サービスを呼び出すクライアント クラス内:

    static void Main(string[] args)
    {
        FileListenerClient c = new FileListenerClient();
        c.MonitorFolder();
        c.Close();
    }

これがファイルの変更を反映しない理由はありますか?

4

3 に答える 3