【发布时间】:2010-09-08 14:33:23
【问题描述】:
互联网上有很多关于 ReadDirectoryChangesW API 函数在有大量文件活动时丢失文件的帖子。大多数都归咎于调用 ReadDirectoryChangesW 函数循环的速度。这是一个不正确的假设。我看到的最好的解释是在下面的帖子中,2008 年 4 月 14 日星期一下午 2:15:27 的评论
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/4465cafb-f4ed-434f-89d8-c85ced6ffaa8/
总结是,ReadDirectoryChangesW 函数在文件更改离开文件后写队列时报告文件更改,而不是在添加时报告。如果在提交之前添加了太多,你会忽略其中一些。如果您只是编写一个程序以真正快速地在目录中生成 1000 多个文件,您可以在您的实现中看到这一点。只要数一数您收到了多少文件事件通知,您就会发现有时您不会收到所有通知。
问题是,有没有人找到一种可靠的方法来使用 ReadDirectoryChangesW 函数而不必每次都刷新音量?如果用户不是管理员,则不允许这样做,并且可能需要一些时间才能完成。
【问题讨论】:
标签: .net windows readdirectorychangesw