我要用FileSystemWatcher监控配置文件的内容是否改变,如果改变了就重新加载设置
只使用OnChanged事件,相关代码如下:fsw.Path = @"C:\";
fsw.Filter = "*.config";
fsw.NotifyFilter = System.IO.NotifyFilters.LastWrite;
fsw.EnableRaisingEvents = true;发现有一个奇怪的问题:
当监控目录在系统盘下时,修改一次文件只触发一次事件
当监控目录在逻辑盘下时,修改一次文件就会触发两次事件我用微软给的示例也会有这种情况
哪位大侠知道这是怎么回事吗?谢谢了

解决方案 »

  1.   

    应该和监控路径没关系。你看看是不是和修改的文件大小有关。太小的可能只触发一次事件新建文件事件时候也是。据说会3次事件,实际上很小的文件只触发2次不知道是.net的bug还是文件系统的限制
      

  2.   


    之前我是用winform测试的,今天我用控制台程序测试也是一样的情况
    微软不知道在搞什么飞机
    难道真要我自己写个监控服务
      

  3.   

    是的,我开始还怀疑是最后访问时间的问题,
    只取watcher.NotifyFilter =  NotifyFilters.LastWrite | NotifyFilters.FileName ;
    发现事件还是触发2次~
    还是自己写吧,灵活些,文件的那些属性又方便取。