因为vs对文件的保存很特别(应该是为了数据安全),它保存的时候:
1. 建立临时文件A,把修改的结果保存到A;
2. 建立临时文件B,把原文件内容保存到B,删除原文件;
3. 把A重命名到原文件名;
4. 删除临时文件B。这个保存过程就没有修改原文件,所以用LastWrite监视原文件没有效果。
想要监视这个修改,根据它的步骤有多种办法。比如你监视 "a.txt*" 就会发现它修改了一个 "a.txt~xxxxxxxxx.TMP" 的文件,或者合并使用NotifyFilters.FileName,用Renamed事件能看到一个临时文件改名成a.txt,或者合并使用NotifyFilters.CreationTime,这样Changed事件也能监视到,等等。