1

c# で書いたコードを FileSystemWatcher クラスに統合する方法がわからない

    public static void watcherFunc()
    {
        FileSystemWatcher fileWatcher = new FileSystemWatcher(@"C:\Documents and Settings\Develop\Desktop\test\");
        fileWatcher.NotifyFilter = NotifyFilters.LastWrite;
        fileWatcher.Changed += new FileSystemEventHandler(OnChanged);
        fileWatcher.EnableRaisingEvents = true;
    }
    // Define the event handlers. 
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
        // Specify what is done when a file is changed, created, or deleted.
        MessageBox.Show("File: " + e.FullPath + " " + e.ChangeType);
    }

form1リードイベントでそれを呼び出そうとしました....方法を読んでみましたが、うまくいきませんでした。助けてください...ありがとう!

4

1 に答える 1

2

私が言えることはFileSystemWatcher、メソッドを終了すると範囲外になるということです。したがって、イベントをキャッチすることはもはやアクティブではありません。

次のように試してください:

FileSystemWatcher fileWatcher = new FileSystemWatcher(@"C:\Documents and ettings\Develop\Desktop\test\");
public void Initialize() //initialization or Constructor
{
    fileWatcher.NotifyFilter = NotifyFilters.LastWrite;
    fileWatcher.Changed += new FileSystemEventHandler(OnChanged);
    fileWatcher.EnableRaisingEvents = true;
}

// Define the event handlers. 
private void OnChanged(object source, FileSystemEventArgs e)
{
    // Specify what is done when a file is changed, created, or deleted.
    MessageBox.Show("File: " + e.FullPath + " " + e.ChangeType);
}

必要な場合は、FileWatcher チュートリアルを参照してください。

于 2013-07-29T20:54:45.830 に答える