我使用 .Net FileSystemWatcher 编写了一个小型测试应用程序来监视目录。当我将一个大(几 Mb)文件复制到该目录中时,我会列出以下事件(请参见屏幕截图 - 并忽略 Delete 事件开始)。
替代文字 http://robinwilson.homelinux.com/FSW.png
我得到了一个创建的事件(如预期的那样),但随后发生了两个更改的事件(相隔约 0.7 秒)。为什么是这样?这将导致我计划开发的应用程序出现重大问题 - 因为我会尝试对文件执行两次操作(大概在完成写入之前一次!)。我能做些什么来阻止这种情况的发生吗?从我在 StackOverflow 和其他地方读到的内容来看,一旦文件被更改然后关闭,您应该只得到一个更改的事件。为什么我要两个?