首页 > 代码库 > 解决C#中FileSystemWatcher类的Changed事件触发多次的问题

解决C#中FileSystemWatcher类的Changed事件触发多次的问题

public static void WatchFile()
{

FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "E:/Work/Test/source";
watcher.Filter = "*.txt";
watcher.NotifyFilter = NotifyFilters.Size;
watcher.Changed += new FileSystemEventHandler(Change_Watch);
watcher.EnableRaisingEvents = true;

}

public static void Change_Watch(object o, FileSystemEventArgs args)
{
string sourcePath = "E:/Work/Test/source/ceshi.txt";
string targetPath = "E:/Work/Test/target/ceshi.txt";
var watcher = o as FileSystemWatcher;
watcher.EnableRaisingEvents = false;
File.Copy(sourcePath, targetPath, true);
watcher.EnableRaisingEvents = true;

}

解决C#中FileSystemWatcher类的Changed事件触发多次的问题