繁体   English   中英

C#FileSystemWatcher事件

[英]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.

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