Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用filesystemwatcher在c#中监视windows系统中的文件更改_C#_Wpf_Filesystemwatcher - Fatal编程技术网

如何使用filesystemwatcher在c#中监视windows系统中的文件更改

如何使用filesystemwatcher在c#中监视windows系统中的文件更改,c#,wpf,filesystemwatcher,C#,Wpf,Filesystemwatcher,目前,我使用filesystemwatcher类来监视文件更改,但在我的情况下,系统中不同位置上有数百万个文件,因此我必须创建导致性能问题的filesystemwatcher类的数百万个实例 请告诉我如何最大限度地提高性能,或者是否有其他方法来监视c#中的所有文件。FileSystemWatcher是正常的方法。我建议您关注更高级别的文件-例如,驱动器级别的所有更改,并且只响应您感兴趣的文件夹中的文件 例如,获得“更改”事件后,可以检查传递给事件处理程序的FileSystemEventArgs上

目前,我使用filesystemwatcher类来监视文件更改,但在我的情况下,系统中不同位置上有数百万个文件,因此我必须创建导致性能问题的filesystemwatcher类的数百万个实例


请告诉我如何最大限度地提高性能,或者是否有其他方法来监视c#中的所有文件。

FileSystemWatcher是正常的方法。我建议您关注更高级别的文件-例如,驱动器级别的所有更改,并且只响应您感兴趣的文件夹中的文件

例如,获得“更改”事件后,可以检查传递给事件处理程序的FileSystemEventArgs上的FullPath属性


我假设您已经在文件夹级别上监视,而不是单个文件。

明显的问题-您是否使用IncludeSubdirectories属性?为什么必须创建数百万个fsw类实例?您是否使用“IncludeSubdirectories”功能和文件名过滤?如果我将在驱动器级别查看所有更改,则它们有可能获得更不寻常的更改事件。因为,例如,如果一个am监控驱动器C:那么他们的许多进程都在不断地更改某些文件,如(日志文件),在这种情况下,它不会导致任何性能问题。