C#文件监控

FileSystemWatcher

常用属性:

Path:获取或设置要监视的目录的路径

Filter:获取或设置筛选字符串,用于确定在目录中监视哪些文件

NotifyFilter:获取或设置要监视的更改类型。

EnableRaisingEvents:获取或设置一个值,该值指示是否启用此组件。

常用事件:

OnChanged:执行Changed,Created,Deleted时引发改事件

OnRenamed:执行重命名时引发改事件

监控代码:(源码.rar)

  

C#文件监控C#文件监控C#文件监控
 1 #region 监控文件
 2 public void Run()
 3 {
 4     //创建文件监控对象
 5     FileSystemWatcher watcher = new FileSystemWatcher();
 6     //设置监控目录
 7     watcher.Path = path;
 8     //定义监控类型
 9     watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
10         | NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.CreationTime;
11     //定义监控的文件类型
12     watcher.Filter = "*.*";
13 
14     //绑定监控事件
15     watcher.Changed += new FileSystemEventHandler(OnChanged);
16     watcher.Created += new FileSystemEventHandler(OnChanged);
17     watcher.Deleted += new FileSystemEventHandler(OnChanged);
18     watcher.Renamed += new RenamedEventHandler(OnRenamed);
19 
20     //true表示开始监控,启用监控;false表示取消监控
21     watcher.EnableRaisingEvents = true;
22 }
23 
24 private void OnChanged(object source, FileSystemEventArgs e)
25 {
26             
27     string changedInfo = string.Format("File: {0} {1}", e.FullPath, e.ChangeType);
28     //因为UI上的线程非安全的,所以要使用Invoke
29     this.Invoke(new Method(AddItem),changedInfo);
30 }
31 
32 private void OnRenamed(object source, RenamedEventArgs e)
33 {
34         
35     string changedInfo = string.Format("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
36     //因为UI上的线程非安全的,所以要使用Invoke
37     this.Invoke(new Method(AddItem), changedInfo);
38 
39 }
40 //把监控到的信息添加到ListBox上
41 private void AddItem(string item)
42 {
43     listBox1.Items.Add(item);
44 }
45 #endregion

 

 

 

 

上一篇:AspNetCore中基于Session的身份验证


下一篇:如何让 Spring 应用使用web 容器的JNDI 资源