FileSystemWatcher对硬盘有什么影响?

时间:2013-10-08 23:14:35

标签: c# winforms filesystemwatcher

我过去曾使用过FileSystemWatcher。但是,我希望有人可以解释它实际上是如何在幕后工作的。

我计划在我正在制作的应用程序中使用它,它将监视大约5个驱动器和300,000个文件。

FileSystemWatcher是否实际上对驱动器进行“检查” - 例如,是否会导致驱动器磨损?它也会影响硬盘“睡眠”的能力

这是我不明白它是如何工作的地方 - 如果它像是在定时器等上扫描驱动器......或者它是否在它执行任何操作之前等待来自操作系统的某种类型的通知。

我只是不想实现会导致驱动器额外读取并使驱动器无法休眠的内容。

2 个答案:

答案 0 :(得分:5)

没有那样的。文件系统驱动程序只是根据您选择的过滤器监视机器上运行的其他程序所请求的正常文件操作。如果匹配则会向内部缓冲区添加一个记录操作和文件名的条目。这样就完成了驱动程序请求并获得了在程序中运行的事件。您将获得从该缓冲区传递给您的操作的详细信息。

因此操作本身并没有实际发生,根本没有额外的磁盘活动。它只是运行的软件。开销很小,没有明显减慢。

答案 1 :(得分:2)

简短的回答是否定的。 FileSystemWatcher调用ReadDirectoryChangesW API将其传递给异步标志。基本上,当发生对目录的更改时,Windows将数据存储在已分配的缓冲区中。此函数返回该缓冲区中的数据,FileSystemWatcher将其转换为适合您的通知。