我正在寻找一种可靠的方法来查找目录中的更改。
我尝试过使用FileSystemWatcher,但是当创建,更改或删除许多小文件时,这是相当不准确的。它错过了我测试中大约1%或2%的文件。当您快速添加或更改数千个文件时,这是非常重要的。
我已尝试轮询以500毫秒,2000毫秒等不同间隔进行更改。在这种情况下,我获得了太多点击。这可能与FileInfo对象上的时间戳分辨率有关。
所以我的问题是;是否有可能使用.NET Framework可靠地获取对目录的更改?
- 基督教
答案 0 :(得分:7)
您是否尝试过增加InternalBufferSize? 你把它设置为什么尺寸?
来自MSDN:
请注意,FileSystemWatcher可能会错过 缓冲区大小为的事件 超标。为了避免遗漏事件, 遵循以下准则:增加 通过设置缓冲区大小 InternalBufferSize属性。避免 观看文件名长的文件, 因为长文件名有贡献 填补缓冲区。考虑 使用short更改这些文件 名。
尽可能缩短您的事件处理代码。