Мне нужно следить за изменениями одной из папок.C# FileSystemWatcher Событие
class FileWatcher
{
FileSystemWatcher watcher = new FileSystemWatcher();
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public void StartWatching()
{
watcher.Path = AppDomain.CurrentDomain.BaseDirectory + "\\Read test data";
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
}
private static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine("Changes in folder: 'Read test data' ");
}
}
И инициализации:
private FileWatcher watch = new FileWatcher();
private void StartReadCVSChanges_Click(object sender, EventArgs e)
{
watch.StartWatching();
}
По какой-то причине, когда у меня есть некоторые изменения, обработчик события вызывается 3 раза:
Я предпочитаю, чтобы это было один раз.
Любые идеи?
может быть, это будет стоить обработок различных событий из различных методов, а не только обработки это из одного? В соответствии с примером в msdn: http://msdn.microsoft.com/en-us/library/System.IO.FileSystemWatcher(v=vs.110).aspx - Также проверьте тип изменения: http: // msdn. microsoft.com/en-us/library/system.io.filesystemeventargs(v=vs.110).aspx – Ric