[英]C# FileSystemWatcher Event
我必须遵循文件夹之一的更改。
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次:
我更喜欢一次。
有任何想法吗?
请参阅此链接 。
您可能会注意到,在某些情况下,单个创建事件会生成多个由组件处理的Created事件。 例如,如果使用FileSystemWatcher组件监视目录中新文件的创建,然后使用记事本创建文件对其进行测试,则即使仅创建了一个文件,也可能会生成两个Created事件。 这是因为记事本在写入过程中执行了多个文件系统操作。 记事本将批量写入磁盘,以创建文件内容,然后创建文件属性。 其他应用程序可能以相同的方式执行。由于FileSystemWatcher监视操作系统的活动,因此将拾取这些应用程序触发的所有事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.