怎么在c#中利用FileSystemWatcher控件监控文件

  介绍

怎么在c#中利用FileSystemWatcher控件监控文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强> FileSystemWatcher

可以使用FileSystemWatcher组件监视文件系统,并对文件系统的改变作出反应。通过使用FileSystemWatcher组件,在特定的文件或目录被创建,修改或删除时,可以快速和便捷地启动业务流程。

例如,如果一组用户在合作处理一个存储在服务器共享目录下的文档时,可以使用FileSystemWatcher组件编写应用程序来监视对共享目录的更改情况。当检测到更改时,该组件可以运行处理过程,通过电子邮件通知每个用户。

可以配置组件来监视整个目录及其内容,或特定目录下一个特定的文件或一组文件。若要监视所有文件中的更改,应将过滤器属性设置为空字符串(“;”);若要监视特定的文件,应将过滤器属性设置为该文件的文件名(例如,若要监视文件MyDoc.txt中的更改,将过滤器属性设置为“MyDoc.txt");也可以监视特定文件类型中的更改,例如若要监视文本文件中的更改,将Fillter属性设置为“* .txt"。

【提示】不要忽略隐藏文件。

可监视目录或文件中的若干种更改。例如,可监视文件或目录的属性,LastWrite的日期和时间的大小或更改。通过将
FileSystemWatcher.NotifyFilter属性设置为NotifyFilters中的某个值,就可以实现这个目标。

还可以监视文件或目录的重命名,删除或创建,例如,若要监视文本文件的重命名,可将过滤器属性设置为“* .txt",并调用一个WaitForChanged方法,并设置该方法中WatcherChangeTypes的值为重命名。

下面举例说明。创建一个FileSystemWatche组件来监视运行时指定的目录。组件被设置用来监视LastWrite和LastAccess时间的更改,以及目录中文本文件的创建,删除或重命名。如果文件被更改,创建或删除,则文件的路径就会被输出到控制台。当一个文件被重命名时,旧的和新的路径都被输出到控制台。

<强>实例使用FileSystemWatche组件来监视运行时指定的目录:

using 系统;   using 先;   public  class  watcher    {   public 才能;static  void  Main (string [], args),   {才能   ,,,//如果没有指定目录,则退出程序   ,,,如果(args.Length !=1),   ,,,{   ,,,,,//显示调用程序的正确方法   ,,,,,Console.WriteLine(“用法:Watcher.exe(目录)“);   ,,,,,返回;   ,,,}   ,,,//创建一个新的FileSystemWatcher并设置其属性   ,,,FileSystemWatcher 观察者=new  FileSystemWatcher ();   ,,,watcher.Path=args [O];   ,,,/*监视LastAcceSS和LastWrite时间的更改以及文件或目录的重命名*/,,,watcher.NotifyFilter=NotifyFilters.LastAccess  | NotifyFilters.LastWrite  |   ,,,,,,,,,,NotifyFilters.FileName  |, NotifyFilters.DirectoryName;   ,,,//只监视文本文件   ,,,watcher.Filter=? .txt";   ,,,//添加事件句柄   ,,,//当由FileSystemWatcher所指定的路径中的文件或目录的   ,,,//大小,系统属性,最后写时间,最后访问时间或安全权限   ,,,//发生更改时,更改事件就会发生   ,,,watcher.Changed  +=new  FileSystemEventHandler (onchange);   ,,,//由FileSystemWatcher所指定的路径中文件或目录被创建时,创建事件就会发生   ,,,watcher.Created  +=new  FileSystemEventHandler (onchange);   ,,,//当由FileSystemWatcher所指定的路径中文件或目录被删除时,删除事件就会发生   ,,,watcher.Deleted  +=new  FileSystemEventHandler (onchange),;   ,,,//当由FileSystemWatcher所指定的路径中文件或目录被重命名时,重命名事件就会发生   ,,,watcher.Renamed  +=new  RenamedEventHandler (OnRenamed);   ,,,//开始监视   ,,,watcher.EnableRaisingEvents=true;   ,,,//等待用户退出程序   ,,,Console.WriteLine(“新闻\ & # 39;问\ & # 39;,用quit 从而样本!”);   ,,,,(Console.Read() !=& # 39;提问# 39;);   ,,}//才能定义事件处理程序   public 才能static  void  onchange (object 发送方,FileSystemEventArgs  e),   {才能   ,,,//指定当文件被更改,创建或删除时要做的事   ,,,Console.WriteLine(“文件:“+ e.FullPath +““+ e.ChangeType);   ,,}   public 才能static  void  OnRenamed (object 发送方,RenamedEventArgs  e),   {才能   ,,,//指定当文件被重命名时发生的动作   ,,,Console.WriteLine (“Fi] e: {0}, renamed 为{1}“,e.OldFullPath, e.FullPath);   ,,}   }

怎么在c#中利用FileSystemWatcher控件监控文件