FileSystemWatcher对硬盘有什么影响?

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

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

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

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

我只是不想实现一些会导致驱动器额外读取并使驱动器无法hibernate的东西。

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

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

最简洁的答案是不。 FileSystemWatcher调用ReadDirectoryChangesW API,向其传递异步标志。 基本上,当发生对目录的更改时,Windows会将数据存储在已分配的缓冲区中。 此函数返回该缓冲区中的数据, FileSystemWatcher将其转换为很好的通知。