.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 监视指定目录中的变更的更多相关文章
-
使用FileSystemWatcher监视指定目录
使用 FileSystemWatcher 监视指定目录中的更改.可监视指定目录中的文件或子目录的更改. 以下是一个简单的实例,用来监控指定目录下文件的新增.删除.重命名等情况(文件内容更改会触发多次, ...
-
Window Linux下实现指定目录内文件变更的监控方法
转自:http://qbaok.blog.163.com/blog/static/10129265201112302014782/ 对于监控指定目录内文件变更,window 系统提供了两个未公开API ...
-
python glob 用通配符查找指定目录中的文件 - 开源中国社区
python glob 用通配符查找指定目录中的文件 - 开源中国社区 python glob 用通配符查找指定目录中的文件
-
java统计指定目录中文件的个数和总的大小
转: 统计指定目录中文件的个数和总的大小 package file; import java.io.File; import java.util.ArrayList; public class Fil ...
-
APACHE2.4 指定目录中的字符编码
APACHE2.4 指定目录中的字符编码 xampp 的 apache2.4 默认字符编码是西文,中文字符显示乱码,在 httpd.conf 没有 AddDefaultCharset utf-8 这样 ...
-
File类之在指定目录中查找文件
package IoDemo; import java.io.File; /** * @Title:FileDemo2 * @Description:在指定的目录中查找文件 * @author Cra ...
-
USB-Blaster驱动安装失败——文件哈希值不在指定目录中
右击此电脑,选择管理,选择设备管理器,更新USB-Blaster驱动出现问题 问题: 文件的哈希值不在指定的目录文件中,如图: 解决办法: Windows键+R→shutdown.exe /r /o ...
-
【Python】自动生成html文件查看指定目录中的所有图片
获取本目录下的pic子目录中的所有图片(jpg,png,bmp,gif等,此处以jpg文件为例),然后生成一个image.html文件,打开该html文件即可在浏览器中查看pic子目录中的所有图片. ...
-
将指定目录中的txt文件转化成excel文件
#!/usr/bin/env python#coding:utf-8import reimport osimport globimport xlwtimport sysdir=r"F:\te ...
随机推荐
-
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 ...
-
cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(一)
cWeb开发框架是基于asp.net的B/S应用开发平台,采用三层架构理论,应用简单.代码简洁.运行快速. cWeb是bubufx提供,是分享资源,无任何版权限制,bubufx继续传承互联网精神,可随 ...
-
win32+ apache2.2 + tomcat7配置
首先已安装了apache2.2.22与tomcat7,并下载了相应的连接器文件mod_jk.so,存放于apache目录的modules下.我的电脑的安装路径如下:1.D:\server\Apache ...
-
Maven项目自动生成mybaties配置文件
1.把mysql-connector-java-5.1.31.jar包放到C盘的mysqljar文件夹下 2.在generatorConfig.xml文件中配置实体.dao.service等包 < ...
-
linq 多表分组查询统计
var q1 = from orderitem in q2 join pd in _iProductDetailContract.Entities on orderitem.ProductDetail ...
-
【转】【Asp.Net MVC】asp.net mvc Model验证总结及常用正则表达式
本文属转载,来源: http://www.byywee.com/page/M0/S868/868615.html 关于Model验证官方资料: http://msdn.microsoft.com/zh ...
-
Knockout.js 初探
Knockout.js是什么? Knockout是一款很优秀的JavaScript库,它可以帮助你仅使用一个清晰整洁的底层数据模型(data model)即可创建一个富文本且具有良好的显示和编辑功能的 ...
-
深入理解spring中的各种注解(转)
Spring中的注解大概可以分为两大类: 1)spring的bean容器相关的注解,或者说bean工厂相关的注解: 2)springmvc相关的注解. spring的bean容器相关的注解,先后有:@ ...
-
eclipse,android Localization (Internationalization) 安卓本地化(国际化)
1.创建新的资源文件,名字保持一致.提示"已存在",继续. 2.使用“语言”作为识别器,然后选择相应的语言代码.Tips:其他的适配,如国家.屏幕大小等,也是通过这里的识别器实现适 ...
-
一. IntelliJ IDEA详细配置文档之初始环境搭建
前言 对于用惯了eclipse的同学来说, 突然切换为idea不是一件那么容易的事情, 所以我会发布一系列只讲解idea使用技巧的文章, 请大家多多关注. 本系列文章的配置参考网上某教程的讲解, 本 ...