FindFirstChangeNotification是在Windows上用于文件系统更改通知的最佳API吗?

我是新来的Windows编程,我试图得到文件系统的所有变化的通知(类似于从SysInternals显示,但通过API的FileMon的信息)。 对于每个(非networking,非子系列)驱动器,我最好还是selectFindFirstChangeNotification还是还有其他更适合的C / C ++ API?

FindFirstChangeNotification是好的,但稍微更终极的权力,你应该使用ReadDirectoryChangesW. (事实上​​,甚至在文档中建议!)

它不需要函数指针,它需要你手动解码一个原始的缓冲区,它使用的是Unicode文件名,但是它通常更好,更灵活。

另一方面,如果您想要执行FileMon所做的操作,则应该执行FileMon的操作,并使用IFS创建并安装文件系统过滤器 。

还有其他方法可以做到这一点,但其中大部分都涉及到您的部分工作(或者从您的应用程序获取性能,或者您必须阻止某个线程使用它们等)。 如果你不习惯处理函数指针等,FindFirstChangeNotification有点复杂,但是它具有让操作系统为你完成大部分工作的优点。

其实FileSystemWatcher完美的共享网络驱动器。 我现在在一个应用程序中使用它,除其他外,它监视文件系统的变化。 (www.tabbles.net)。

您可以使用FileSystemWatcher类。 非常高效,但无法与网络共享驱动器一起使用。