.Net提供了FileSystemWatcher类用于实现文件监控功能。
FileSystemWatcher位于System.IO名称空间下,使用前需using System.IO;
FileSystemWatcher能够监控指定目录下的文件删除,建立,重命名等操做。在其构造函数中能够指定须要监控的目录以及须要监控的特定文件类型。
其Created事件在指定目录下建立文件的时候触发。
然而在实际应用中咱们经常须要在须要监控的目录中文件建立完成时才做出相应的处理,而这个事件是在有文件建立的时候就触发的,这在处理大文件的时候就容易出错,由于文件还没建立完成,好比复制一个大文件。这时候咱们须要对建立的文件进行访问的时候就会出现没法打开文件的异常。
不少网友都是经过循环检查建立的文件大小变化来判断文件是否完成的,这样带来了很大的系统性能损耗,并且不稳定。
其实咱们能够使用一个变通的办法,那就是在建立完大文件的时候建立一个同名的特定类型的小文件,前面咱们已经说到FileSystemWatcher类是能够指定监控特定类型的文件的,因此咱们就能够安全的处理建立的文件了。
FileSystemWatcher fsw = new FileSystemWatcher(@"D:\aaa");
fsw.Created += new FileSystemEventHandler(fsw_Created);
具体的实现过程很简单,这里就不贴代码了,你们实践实践就能够领会了。