2013-10-08 128 views
2

我以前用过FileSystemWatcher。不过,我希望有人能够解释它是如何在幕后工作的。FileSystemWatcher对硬盘有什么影响?

我打算利用它在我提出一个应用程序,它会监视大约5驱动器,也许30万文件。

是否FileSystemWatcher的实际完成驱动器上的“检查” - 如,将它的驱动器上造成磨损/撕裂?同时它影响的硬盘驱动器的能力,以“休眠”

这是我不明白它是如何工作 - 如果它像一个计时器扫描驱动器等...或者如果等待一些从类型的通知它做任何事情之前的操作系统。

我只是不想要实现是要额外造成一些读取的驱动器上,并从睡眠保持驱动。

回答

5

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

所以没有什么实际发生的操作本身,没有多余的磁盘活动的。这只是运行的软件。开销很小,没有什么明显的变慢。

+0

+1我总是想知道如何实现IO更改通知 – Amro

2

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

相关问题