如何实时监控一个文件夹是否被修改过,即是否添加了子目录或者文件?急急急!!
如何实时监控一个文件夹是否被修改过,即是否添加了子目录或者文件?
谢谢解答!
------解决方案--------------------不知楼主的问题用FileSystemWatcher 能否解决:
.NET Framework 类库
FileSystemWatcher 类
侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。
------解决方案--------------------备注:
使用 FileSystemWatcher 监视指定目录中的更改。可监视指定目录中的文件或子目录的更改。可以创建一个组件来监视本地计算机、网络驱动器或远程计算机上的文件。
------解决方案--------------------楼上OK
------解决方案--------------------FileSystemWatcher 可以,不过这个类有个bug要注意,在短时间内在目标文件夹中进行大量操作的时候会有问题.
------解决方案--------------------而且有些事件触发的时机比较别扭,比如添加了一个文件,假设从其他地方Copy过来,是需要时间的,并且时机可能很长, 这个类只是在 "开始 "的时候触发了事件, 在结束的时候并没有事件出来(而往往,几乎95%以上的情况,我们需要的都是结束的时候的事件....因为文件写完了我们才应该开始操作,否则是锁死的状态....)
还有同个事件触发的时候不是异步的而是以队列形式存在,也就是你突然创建100个文件进去,触发了100个事件处理函数,那100个如果都是需要1分钟运算完,并不是根据你触发的时间像Timer那样准时触发,而是 "一个一个排好队,慢慢来别急...... " ,也就是其中有一个事件处理程序是要在事件触发以后过99分钟才 "开始 " 执行....这可能引起某些跟时间相关的问题.
另外事件的队列有一定的长度限制,所以如果是比如突然Copy大量小文件进去...有时候会溢出出错.
------解决方案--------------------楼上楼上的是个方法
最原始方法也是可以解决呀:
实时检测,文件夹内文件或目录,查看其属性,如创建与修改时间,与一定时间相比较