简体   繁体   中英

When changed event fire in FileWatcher

I'm using FileWatcher to monitor an xml file to track of changes. I just want to fire some method when the contents of the file is changed, file is re-named or even deleted.

Subscribing to Changed event is enough for this?

Do I need to subscribe to other events as well?

In order to monitor all actions you want, you must listen to all event: create, change, delete, update.

Here's the sample:

public void init() {

    FileSystemWatcher watcher = new FileSystemWatcher();
    watcher.Path = "path/to/file";

    watcher.NotifyFilter = NotifyFilters.LastAccess
            | NotifyFilters.LastWrite | NotifyFilters.FileName
            | NotifyFilters.DirectoryName;
    // Only watch text files.
    watcher.Filter = "*.txt";

    // Add event handlers.
    watcher.Changed += new FileSystemEventHandler(OnChanged);
    watcher.Created += new FileSystemEventHandler(OnChanged);
    watcher.Deleted += new FileSystemEventHandler(OnChanged);
    watcher.Renamed += new RenamedEventHandler(OnRenamed);

    // Begin watching.
    watcher.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.        
}

private static void OnRenamed(object source, RenamedEventArgs e) {
    // Specify what is done when a file is renamed.     
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM