缘起
之前基于 .net 官方提供的 FileSystemWatcher 写了一个文件变化监听工具,具体参考这篇文章 。主要解决了以下三个问题:
- 事件触发时,文件可能还不能被访问。
- 如果监听选项设置的过多,有可能会多次触发文件变化事件。
- 监听过滤器不够灵活,我没找到同时监听多种特定文件类型的方法(比如,同时只监听
.docx和.bmp文件)。
为了解决问题1,我在调用用户注册的回调函数前,会先调用 WaitUntilCanAccess() 来确保文件是可访问状态。没想到在测试过程中发现了一个意想不到的问题。本文记录了解决这个问题的过程。