.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. 快速排序 JAVA实现

    快速排序 每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边.快速排序是不稳定的,时间复杂度(平均):nlogn public class ...

  2. 【12c OCP】CUUG OCP认证071考试原题解析(33)

    33.choose the best answer View the Exhibit and examine the structure of the ORDER_ITEMS table. Exami ...

  3. Wannafly挑战赛29题解

    这套题目非常有意思啊23333--话说为啥没有上条先生的呢-- 传送门 \(A\) 御坂美琴 蠢了--首先先判总共加起来等不等于\(n\),不是的话就不行 然后dfs记录\(n\)不断分下去能分成哪些 ...

  4. ROS(URDF机器人建模)

    新建功能包mbot_description 在功能包下新建文件config,launch,meshes,urdf. 在launch文件夹下新建文件display_mbot_base_urdf.laun ...

  5. 3XX重定向

        3XX响应结果表明浏览器需要执行某些特殊的处理以正确处理请求 301 Moved Permanently  永久性重定向     该状态码表示请求的资源已经被分配了新的URI,以后应使用资源现 ...

  6. javascript IE事件处理及跨浏览器事件处理程序

    一.javascript事件处理中 addEventListener/removeEventListener 用于绑定事件和解除事件,但大多用于chrome/火狐/IE9这些比较高级的浏览器中,IE8 ...

  7. scrapy实战1,基础知识回顾和虚拟环境准备

        视频地址 https://coding.imooc.com/learn/list/92.html   一. 基础知识回顾     1. 正则表达式 1)贪婪匹配,非贪婪匹配 .*? 非贪婪 . ...

  8. 兼容各浏览器的js回车事件

    HTML代码: <input type="text" onkeydown="EnterPress(event)" /> JS代码: function ...

  9. 苹果的 Metal 工程

    Basic Buffers 当向顶点着色器传递数据过多(大于 4096 字节)时, setVertexBytes:length:atIndex: 方法不允许使用,应该使用 setVertexBytes ...

  10. linux下不同颜色文件的性质

    绿色文件: 可执行文件,可执行的程序 红色文件:压缩文件或者包文件 蓝色文件:目录 白色文件:一般性文件,如文本文件,配置文件,源码文件等 浅蓝色文件:链接文件,主要是使用ln命令建立的文件 红色闪烁 ...