C#使用FileSystemWatcher控件实现的文件监控功能示例
本文实例讲述了C#使用FileSystemWatcher控件实现的文件监控功能。分享给大家供大家参考,具体如下:
FileSystemWatcher
可以使用FileSystemWatcher组件监视文件系统,并对文件系统的改变作出反应。通过使用FileSystemWatcher组件,在特定的文件或目录被创建、修改或删除时,可以快速和便捷地启动业务流程。
例如,如果一组用户在合作处理一个存储在服务器共享目录下的文档时,可以使用FileSystemWatcher组件编写应用程序来监视对共享目录的更改情况。当检测到更改时,该组件可以运行处理过程,通过电子邮件通知每个用户。
可以配置组件来监视整个目录及其内容,或特定目录下一个特定的文件或一组文件。若要监视所有文件中的更改,应将Filter属性设置为空字符串("");若要监视特定的文件,应将Filter属性设置为该文件的文件名(例如,若要监视文件MyDoc.txt中的更改,将Filter属性设置为"MyDoc.txt");也可以监视特定文件类型中的更改,例如若要监视文本文件中的更改,将Fillter属性设置为"*.txt"。
【提示】不要忽略隐藏文件。
可监视目录或文件中的若干种更改。例如,可监视文件或目录的Attributes、LastWrite的日期和时间或Size的更改。通过将
FileSystemWatcher.NotifyFilter属性设置为NotifyFilters中的某个值,就可以实现这个目标。
还可以监视文件或目录的重命名、删除或创建。例如,若要监视文本文件的重命名,可将Filter属性设置为"*.txt",并调用一个WaitForChanged方法,并设置该方法中WatcherChangeTypes的值为Renamed。
下面举例说明。创建一个FileSystemWatche组件来监视运行时指定的目录。组件被设置用来监视LastWrite和LastAccess时间的更改,以及目录中文本文件的创建、删除或重命名。如果文件被更改、创建或删除,则文件的路径就会被输出到控制台。当一个文件被重命名时,旧的和新的路径都被输出到控制台。
实例 使用FileSystemWatche组件来监视运行时指定的目录:
using System; using System.IO; public class watcher { public static void Main(string[] args) { //如果没有指定目录,则退出程序 if(args.Length!=1) { //显示调用程序的正确方法 Console.WriteLine("usage:Watcher.exe(directory)"); return; } //创建一个新的FileSystemWatcher并设置其属性 FileSystemWatcher watcher=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(OnChanged); //由FileSystemWatcher所指定的路径中文件或目录被创建时,创建事件就会发生 watcher.Created +=new FileSystemEventHandler(OnChanged); //当由FileSystemWatcher所指定的路径中文件或目录被删除时,删除事件就会发生 watcher.Deleted +=new FileSystemEventHandler(OnChanged) ; //当由FileSystemWatcher所指定的路径中文件或目录被重命名时,重命名事件就会发生 watcher.Renamed +=new RenamedEventHandler(OnRenamed); //开始监视 watcher.EnableRaisingEvents=true; //等待用户退出程序 Console.WriteLine("Press\'q\' to quit the sample."); while(Console.Read()!='q'); } //定义事件处理程序 public static void OnChanged(object sender,FileSystemEventArgs e) { //指定当文件被更改、创建或删除时要做的事 Console.WriteLine("file:"+e.FullPath+""+e.ChangeType); } public static void OnRenamed(object sender,RenamedEventArgs e) { //指定当文件被重命名时发生的动作 Console.WriteLine("Fi]e:{0} renamed to{1}",e.OldFullPath,e.FullPath); } }
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#文件操作常用技巧汇总》、《C#遍历算法与技巧总结》、《C#程序设计之线程使用技巧总结》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。
栏 目:C#教程
下一篇:C#实现分页组件的方法
本文标题:C#使用FileSystemWatcher控件实现的文件监控功能示例
本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/5543.html
您可能感兴趣的文章
- 01-10C#使用Dispose模式实现手动对资源的释放
- 01-10C#3.0使用EventLog类写Windows事件日志的方法
- 01-10C#使用windows服务开启应用程序的方法
- 01-10c# ArrayList的使用方法小总结
- 01-10C#使用ADO.Net部件来访问Access数据库的方法
- 01-10C#使用Mutex简单实现程序单实例运行的方法
- 01-10使用Nopcommerce为商城添加满XX减XX优惠券功能
- 01-10C#实现ComboBox控件显示出多个数据源属性的方法
- 01-10C#实现读取DataSet数据并显示在ListView控件中的方法
- 01-10C#中yield用法使用说明
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10delphi制作wav文件的方法
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-11ajax实现页面的局部加载
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10C#中split用法实例总结
- 01-10SublimeText编译C开发环境设置
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 04-02jquery与jsp,用jquery