使用.NET框架监视目录中文件更改的可靠方法

时间:2011-01-31 20:18:52

标签: c# .net polling filesystemwatcher

我正在寻找一种可靠的方法来查找目录中的更改。

我尝试过使用FileSystemWatcher,但是当创建,更改或删除许多小文件时,这是相当不准确的。它错过了我测试中大约1%或2%的文件。当您快速添加或更改数千个文件时,这是非常重要的。

我已尝试轮询以500毫秒,2000毫秒等不同间隔进行更改。在这种情况下,我获得了太多点击。这可能与FileInfo对象上的时间戳分辨率有关。

所以我的问题是;是否有可能使用.NET Framework可靠地获取对目录的更改?

- 基督教

1 个答案:

答案 0 :(得分:7)

您是否尝试过增加InternalBufferSize? 你把它设置为什么尺寸?

来自MSDN


  

请注意,FileSystemWatcher可能会错过   缓冲区大小为的事件   超标。为了避免遗漏事件,   遵循以下准则:增加   通过设置缓冲区大小   InternalBufferSize属性。避免   观看文件名长的文件,   因为长文件名有贡献   填补缓冲区。考虑   使用short更改这些文件   名。


尽可能缩短您的事件处理代码。