.Net框架类库中的FileSystemWatcher如它的名称一样是一个用于监视文件系统变化的一个控件。使用 FileSystemWatcher 监视指定目录中的更改。可监视指定目录中的文件或子目录的更改。可以创建一个组件来监视本地计算机、网络驱动器或远程计算机上的文件。

若要监视所有文件中的更改,请将 Filter 属性设置为空字符串 ("") 或使用通配符(“*.*”)。若要监视特定的文件,请将 Filter 属性设置为该文件名。例如,若要监视文件 MyDoc.txt 中的更改,请将 Filter 属性设置为“MyDoc.txt”。也可以监视特定类型文件中的更改。例如,若要监视文本文件中的更改,请将 Filter 属性设置为“*.txt”。

可监视目录或文件中的若干种更改。例如,可监视文件或目录的 Attributes、LastWrite 日期和时间或 Size 方面的更改。通过将 NotifyFilter 属性设置为 NotifyFilters 值之一来达到此目的。

可监视文件或目录的重命名、删除或创建。例如,若要监视文本文件的重命名,请将 Filter 属性设置为“*.txt”,并使用为其参数指定的 Renamed 来调用 WaitForChanged 方法。

下面的示例使用FileSystemWatcher监视当前应用程序下的所有.txt文本文件的变更:


       //定义FileSystemWatcher对象
        FileSystemWatcher fsw = null;
        public frm12FileSystemWatcher()
        {
            InitializeComponent();             //实例化一个FileSystemWatcher对象
            fsw = new FileSystemWatcher();
            //设置要监视的目录的路径,当前程序运行的目录
            fsw.Path = Application.StartupPath;
            //确定在目录中监视所有的.txt文件
            fsw.Filter = "*.txt";
            //监视的目录中创建文件或目录时引发的事件
            fsw.Created += new FileSystemEventHandler(fsw_Created);
            //监视的目录中删除文件或目录时引发的事件
            fsw.Deleted += new FileSystemEventHandler(fsw_Deleted);             //监视的目录中改变文件或目录时引发的事件
            //监视的目录中的文件或目录的大小、系统属性、
            //上次写入时间、上次访问时间或安全权限进行更改时
            //可以通过设置可组合 NotifyFilters 枚举的成员,以同时监视多种类型的更改
            fsw.Changed += new FileSystemEventHandler(fsw_Changed);
        }         void fsw_Changed(object sender, FileSystemEventArgs e)
        {
            //由于不能跨线程访问,通匿名方法将显示操作交给主线程
            this.Invoke((MethodInvoker)delegate() { listBox1.Items.Add("文件:" + e.FullPath + "被修改"); });
        }         void fsw_Created(object sender, FileSystemEventArgs e)
        {
           //由于不能跨线程访问,通匿名方法将显示操作交给主线程
            this.Invoke((MethodInvoker)delegate() { listBox1.Items.Add("文件:" + e.FullPath + "被创建"); });
        }         void fsw_Deleted(object sender, FileSystemEventArgs e)
        {
           //由于不能跨线程访问,通匿名方法将显示操作交给主线程
            this.Invoke((MethodInvoker)delegate() { listBox1.Items.Add("文件:" + e.FullPath + "被删除"); });
        }         private void btnStart_Click(object sender, EventArgs e)
        {
            //监视开始
            fsw.EnableRaisingEvents = true;
            //创建一个文件,并写入当前的日期时间
            File.AppendAllText("textFile.txt", DateTime.Now.ToString());
            //修改文件,写入当前的日期时间
            File.AppendAllText("textFile.txt", DateTime.Now.ToString());
            //删除文件
            File.Delete("textFile.txt");
        }

转自:张果老师 原文地址:http://www.cnblogs.com/best/archive/2011/07/30/2122088.html

FileSystemWatcher 监视指定目录中的变更的更多相关文章

  1. 使用FileSystemWatcher监视指定目录

    使用 FileSystemWatcher 监视指定目录中的更改.可监视指定目录中的文件或子目录的更改. 以下是一个简单的实例,用来监控指定目录下文件的新增.删除.重命名等情况(文件内容更改会触发多次, ...

  2. Window Linux下实现指定目录内文件变更的监控方法

    转自:http://qbaok.blog.163.com/blog/static/10129265201112302014782/ 对于监控指定目录内文件变更,window 系统提供了两个未公开API ...

  3. python glob 用通配符查找指定目录中的文件 - 开源中国社区

    python glob 用通配符查找指定目录中的文件 - 开源中国社区 python glob 用通配符查找指定目录中的文件

  4. java统计指定目录中文件的个数和总的大小

    转: 统计指定目录中文件的个数和总的大小 package file; import java.io.File; import java.util.ArrayList; public class Fil ...

  5. APACHE2.4 指定目录中的字符编码

    APACHE2.4 指定目录中的字符编码 xampp 的 apache2.4 默认字符编码是西文,中文字符显示乱码,在 httpd.conf 没有 AddDefaultCharset utf-8 这样 ...

  6. File类之在指定目录中查找文件

    package IoDemo; import java.io.File; /** * @Title:FileDemo2 * @Description:在指定的目录中查找文件 * @author Cra ...

  7. USB-Blaster驱动安装失败——文件哈希值不在指定目录中

    右击此电脑,选择管理,选择设备管理器,更新USB-Blaster驱动出现问题 问题: 文件的哈希值不在指定的目录文件中,如图: 解决办法: Windows键+R→shutdown.exe /r /o ...

  8. 【Python】自动生成html文件查看指定目录中的所有图片

    获取本目录下的pic子目录中的所有图片(jpg,png,bmp,gif等,此处以jpg文件为例),然后生成一个image.html文件,打开该html文件即可在浏览器中查看pic子目录中的所有图片. ...

  9. 将指定目录中的txt文件转化成excel文件

    #!/usr/bin/env python#coding:utf-8import reimport osimport globimport xlwtimport sysdir=r"F:\te ...

随机推荐

  1. linux命令之文件备份与压缩命令

    1.tar:打包备份 该命令是将多个命令打包到一起,并且可以实现解压打包.打包是将多个文件或者目录变成一个总的文件,压缩则是将一个大的文件通过压缩算法变成一个小文件. 参数 说明 z(常用) 通过gz ...

  2. php中mvc框架总结1(7)

    1.代码结构的划分: 目前的目录结构: /站点根目录 /application/应用程序目录 Model/模型目录 View/视图目录 Back/后台 front/ test/测试平台 Control ...

  3. kali linux之Audacity

    常用音频隐写工具 安装: sudo apt install audacity 初次打开的界面 看波的宽度分辨长短音 比较细的就是短音,代表".",比较粗的就是长音,代表" ...

  4. BZOJ 1426--收集邮票(概率与期望&DP)

    1426: 收集邮票 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 504  Solved: 417[Submit][Status][Discuss] ...

  5. 《快学Scala》第二章 控制结构和函数

  6. java项目迁移

    电脑重装系统以后或者从不同MyEclipse版本迁移项目时候会出现: Project facet Java 1.5 is not supported by target runtime Apache ...

  7. [转载+整理]Nginx Location匹配规则

    目录 规则语法 location 分类 匹配顺序: 扩展 location / {}和 location =/ {}的区别 测试 规则语法 语法 匹配规则 空 普通匹配(遵循最大前缀匹配规则, 优先度 ...

  8. 校验 CentOS 7 镜像文件

    验证镜像文件的原因 CentOS Vault(http://vault.centos.org/)页脚的镜像站链接上有段英文,指出页脚的镜像站链接不受 CentOS 团队的监控,除此之外还有一个原因就是 ...

  9. [JZOJ6075]【GDOI2019模拟2019.3.20】桥【DP】【线段树】

    Description N,M<=100000,S,T<=1e9 Solution 首先可以感受一下,我们把街道看成一行,那么只有给出的2n个点的纵坐标是有用的,于是我们可以将坐标离散化至 ...

  10. USACO The Lazy Cow

    题目描述 这是一个炎热的夏天,奶牛贝茜感觉到相当的疲倦而且她也特别懒惰.她要在她的领域中找到一个合适的位置吃草,让她能吃到尽可能多的美味草并且尽量只在很短的距离.奶牛贝茜居住的领域是一个 N×N 的矩 ...