FileSystemWatcher 监视指定目录中的变更

时间:2021-11-25 00:43:38

.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对象
        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. create dll project based on the existing project

    Today, I have to create a dll project(called my.sln), the dllmain.cpp/.h/ is already in another proj ...

  2. cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(一)

    cWeb开发框架是基于asp.net的B/S应用开发平台,采用三层架构理论,应用简单.代码简洁.运行快速. cWeb是bubufx提供,是分享资源,无任何版权限制,bubufx继续传承互联网精神,可随 ...

  3. win32+ apache2.2 + tomcat7配置

    首先已安装了apache2.2.22与tomcat7,并下载了相应的连接器文件mod_jk.so,存放于apache目录的modules下.我的电脑的安装路径如下:1.D:\server\Apache ...

  4. Maven项目自动生成mybaties配置文件

    1.把mysql-connector-java-5.1.31.jar包放到C盘的mysqljar文件夹下 2.在generatorConfig.xml文件中配置实体.dao.service等包 &lt ...

  5. linq 多表分组查询统计

    var q1 = from orderitem in q2 join pd in _iProductDetailContract.Entities on orderitem.ProductDetail ...

  6. 【转】【Asp.Net MVC】asp.net mvc Model验证总结及常用正则表达式

    本文属转载,来源: http://www.byywee.com/page/M0/S868/868615.html 关于Model验证官方资料: http://msdn.microsoft.com/zh ...

  7. Knockout.js 初探

    Knockout.js是什么? Knockout是一款很优秀的JavaScript库,它可以帮助你仅使用一个清晰整洁的底层数据模型(data model)即可创建一个富文本且具有良好的显示和编辑功能的 ...

  8. 深入理解spring中的各种注解(转)

    Spring中的注解大概可以分为两大类: 1)spring的bean容器相关的注解,或者说bean工厂相关的注解: 2)springmvc相关的注解. spring的bean容器相关的注解,先后有:@ ...

  9. eclipse,android Localization (Internationalization) 安卓本地化(国际化)

    1.创建新的资源文件,名字保持一致.提示"已存在",继续. 2.使用“语言”作为识别器,然后选择相应的语言代码.Tips:其他的适配,如国家.屏幕大小等,也是通过这里的识别器实现适 ...

  10. 一. IntelliJ IDEA详细配置文档之初始环境搭建

    前言 对于用惯了eclipse的同学来说, 突然切换为idea不是一件那么容易的事情, 所以我会发布一系列只讲解idea使用技巧的文章, 请大家多多关注.  本系列文章的配置参考网上某教程的讲解, 本 ...