简介
FileSystemWatcher这个类用于当目录或目录中的文件发生更改时,侦听文件系统更改通知并引发事件。
使用场景
需要即时的知道文件的更改,获取第三方系统创建的文件等等。
代码实例
usingSystem; usingSystem.Collections.Generic; usingSystem.IO; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; namespacefilewatcher{ classProgram { staticvoidMain(string[] args) { FileSystemWatcherfsw=newFileSystemWatcher(); //获取应用程序的路劲,监听的文件夹路径fsw.Path=System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase; //获取或设置要监视的更改类型//LastAccess 最后读的日期//LastWrite 最后写的日期//FileName 文件名//DirectoryName 目录名//Attributes 文件或者文件夹属性//size 大小//Security 安全设置fsw.NotifyFilter=NotifyFilters.LastAccess|NotifyFilters.LastWrite|NotifyFilters.FileName|NotifyFilters.DirectoryName|NotifyFilters.Attributes|NotifyFilters.Size|NotifyFilters.Security; //文件类型,支持通配符,“*.txt”只监视文本文件fsw.Filter=""; //设置是否级联监视指定路径中的子目录fsw.IncludeSubdirectories=true; //添加事件fsw.Changed+=OnChanged; fsw.Created+=OnCreated; fsw.Deleted+=OnDeleted; fsw.Renamed+=OnRenamed; // 开始监听fsw.EnableRaisingEvents=true; Console.WriteLine("按q退出!"); while (Console.Read() !='q') ; //FileSystemEventArgs//Name 受影响的文件名称//FullPath 受影响的文件或文件夹的完整路径//ChangeType 获取受影响的文件或目录的发生的事件类型voidOnChanged(objectsource, FileSystemEventArgse) { Console.Write(e.Name+"文件被改变……\r\n"); } voidOnCreated(objectsource, FileSystemEventArgse) { Console.Write(e.Name+"文件被创建……\r\n"); } voidOnDeleted(objectsource, FileSystemEventArgse) { Console.Write(e.Name+"文件被删除……\r\n"); } //RenamedEventArgs//Name 获取受影响的文件或目录的新名称//OldName 获取受影响的文件或目录的旧名称//FullPath 获取受影响的文件或目录的完全限定的路径//OldFullPath 获取受影响的文件或目录的前一个完全限定的路径//ChangeType 获取受影响的文件或目录的发生的事件类型voidOnRenamed(objectsource, RenamedEventArgsr) { Console.Write(r.OldName+"文件被重命名……"+r.Name+"\r\n"); } } } }