本文实例讲述了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组件来监视运行时指定的目录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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#使用FileSystemWatcher控件实现的文件监控功能示例的更多相关文章

  1. 文件监控只FileSystemWatcher控件

    FileSYstemWatcher控件是用来监控一个文件系统或监控文件变化.该控件会通知文件创建.修改.删除的消息,分别通过Created事件.Changed事件和Deleted事件来处理对应的操作 ...

  2. ATL开发 ActiveX控件的 inf文件模板

    ATL开发 ActiveX控件的 inf文件模板    

  3. VC++ 使用WebBrowser控件中html文件以资源形式加载

    . . . . //加载资源文件中的HTML,IDR_HTML1就是HTML文件在资源文件中的ID wchar_t self_path[MAX_PATH] = { }; GetModuleFileNa ...

  4. Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有

    Android高效率编码-细节,控件,架包,功能,工具,开源汇总 其实写博客的初衷也并不是说什么分享技术,毕竟咱还只是个小程序员,最大的目的就是对自我的知识积累,以后万一编码的时候断片了,也可以翻出来 ...

  5. Windows窗体控件实现内容拖放(DragDrop)功能

    一.将控件内容拖到其他控件 在开发过程中,经常会有这样的要求,拖动一个控件的数据到另外一个控件中.例如将其中一个ListBox中的数据拖到另一个ListBox中.或者将DataGridView中的数据 ...

  6. Web控件文本框Reset的功能

    在前一篇中<怎样实现Web控件文本框Reset的功能>http://www.cnblogs.com/insus/p/4120889.html Insus.NET只实现了文本框的功能.单个或 ...

  7. Repeater控件使用(含删除,分页功能)

    Repeater控件使用(含删除,分页功能) 摘自:http://www.cnblogs.com/alanliu/archive/2008/02/25/914779.html 前臺代碼 <%@ ...

  8. DevExpress.LookUpEdit控件实现自动搜索定位功能 兼使用方法(looUpEdit可编辑)

    DevExpress.LookUpEdit 使用方法 设置可手动输入 this.LookUpEdit1.Properties.TextEditStyle = DevExpress.XtraEditor ...

  9. 详解DevExpress.LookUpEdit控件实现自动搜索定位功能(转)

    转载自csdn博客 爱拼才会赢 的博客 地址是详解DevExpress.LookUpEdit控件实现自动搜索定位功能(转)

随机推荐

  1. 爬虫简介与request模块

    一 爬虫简介 概述 近年来,随着网络应用的逐渐扩展和深入,如何高效的获取网上数据成为了无数公司和个人的追求,在大数据时代,谁掌握了更多的数据,谁就可以获得更高的利益,而网络爬虫是其中最为常用的一种从网 ...

  2. mpvue——API请求封装(小程序原生)

    前言 能用,但不是最好的方法,最好的还是fly,因为为了以后多平台的考虑,最好使用fly.js,做之前先关闭校验合法域名,因为我没在后台进行配置 后台进行配置合法域名,按着官方给的配置就OK了,这里就 ...

  3. python 爬虫之beautifulsoup(bs4)环境准备

    环境准备: bs4安装方法:https://blog.csdn.net/Bibabu135766/article/details/81662981 requests安装方法:https://blog. ...

  4. C# 操作SQL Server 公共库

    基本够用,存一下,以后找起来方便 public abstract class DB { //数据库连接字符串(config来配置) protected static string connection ...

  5. chrome headless 无头浏览器 应用

    1. 根据html生成pdf chrome.exe --headless --disable-gpu --print-to-pdf ...../index.html 2. puppeteer --- ...

  6. Python list和 np.Array 的转换关系

    一.List转String 1.str list转 string a_list = ["h","e","l","l",& ...

  7. C#开发Windows服务详细流程

    1.Windows服务简单介绍 Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序,主要用于长时间运行的功能或者执行定时任务.一般情况下,用户不能通过用户界面来安装和启 ...

  8. django - 总结 - admin

    admin组件,一旦我们注册了表以后,会自动生成很多url,那他是如何添加的呢, 因为admin在启动后会自动执行每个app下的ready方法: 具体是由 from django.utils.modu ...

  9. LOJ 3049: 洛谷 P5284: 「十二省联考 2019」字符串问题

    题目传送门:LOJ #3049. 题意简述: 给定一个长度为 \(n\) 的母串 \(S\). 有 \(n_a\) 个 A 类串,都是 \(S\) 的子串,以区间的形式给出. 有 \(n_b\) 个 ...

  10. SQL Server - AS

    AS 是给现有的字段名/表名指定一个别名的意思.