如何在Windows系统中使用FileSystemWatcher和C#监视文件更改

3

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

请告诉我如何最大化性能或是否有其他方法可以在C#中监视所有文件。


显而易见的问题- 你是否在使用IncludeSubdirectories属性? - SteveCav
为什么你要创建数百万个fsw类的实例?你使用“IncludeSubdirectories”功能和文件名过滤器吗? - Larry
1个回答

3

FileSystemWatcher是常规方法。我建议您在更高级别上监视文件-例如,驱动器级别的所有更改,并仅对您感兴趣的文件夹中的更改做出响应。

例如,一旦收到“更改”事件,您可以检查传递给事件处理程序的FileSystemEventArgs的FullPath属性。

我假设您已经在文件夹级别而不是单个文件上进行了观察。


如果我在驱动器级别监视所有更改,那么可能会出现更多异常的更改事件。例如,如果我监视C驱动器,则有许多进程不断更改某些文件,例如日志文件,在这种情况下,它不会导致任何性能问题。 - Pawan Agrawal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接