我使用 .Net FileSystemWatcher 写了一个小型测试应用程序来监视一个目录。当我将一个相对较大的文件(几 MB)复制到该目录时,我会看到以下列出的事件(请参见屏幕截图 - 并忽略一开始的删除事件)。
alt text http://robinwilson.homelinux.com/FSW.png
我收到了一个创建事件(如预期),但接下来是两个更改事件(相隔约0.7秒)。这是为什么?这会在我计划开发的应用程序中造成严重问题 - 因为我会尝试两次处理该文件(可能在它完成写入之前就已经进行一次!)。有没有办法阻止这种情况发生?根据我在 StackOverflow 和其他地方阅读的内容,一旦文件被更改并关闭,您应该只会收到一个更改事件。为什么我会得到两个?