• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c#使用filesystemwatcher实时监控文件目录的添加和删除

c#使用filesystemwatcher实时监控文件目录的添加和删除

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#filesystemwatcher,filesystemwatcher,filesystemwatcher1,c#实时监控,c#波形曲线实时绘制等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

首先,我们需要对.net提供的FileSystemWatcher类有所了解。我有些懒,找了MSDN对该类的描述。

FileSystemWatcher类侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。

使用 FileSystemWatcher 监视指定目录中的更改。可监视指定目录中的文件或子目录的更改。可以创建一个组件来监视本地计算机、网络驱动器或远程计算机上的文件。

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

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

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

Windows 操作系统在 FileSystemWatcher 创建的缓冲区中通知组件文件发生更改。如果短时间内有很多更改,则缓冲区可能会溢出。这将导致组件失去对目录更改的跟踪,并且它将只提供一般性通知。使用 InternalBufferSize 属性来增加缓冲区大小的开销较大,因为它来自无法换出到磁盘的非页面内存,所以应确保缓冲区大小适中(尽量小,但也要有足够大小以便不会丢失任何文件更改事件)。若要避免缓冲区溢出,请使用 NotifyFilter 和 IncludeSubdirectories 属性,以便可以筛选掉不想要的更改通知。

使用 FileSystemWatcher 类时,请注意以下事项。

1) 对包括隐藏文件(夹)在内的所有文件(夹)进行监控。

2) 您可以为 InternalBufferSize 属性(用于监视网络上的目录)设置的最大大小为 64 KB。

FileSystemWatcher的实例监控到文件(夹)的变化后,会触发相应的事件,其中文件(夹)的添加,删除和修改会分别触发Created,Deleted,Changed事件,文件(夹)重命名时触发OnRenamed事件。

然后,在熟悉了FileSystemWatcher类后,我们开始自己的程序编写。

实例化FileSystemWatcher类,并传入需要监控的目录路径,以及是否制定监控的文件类型(文章前面有所介绍)。

注册监听事件,以及编写事件触发后相关的处理逻辑。

在本程序中,专门定义了一个FileChangeInformation类来记录文件变化信息,并定义了一个CustomQueue类,该类类似于Queue类,是一个数据先进先出的集合,用来存储所有的文件变化消息,并提供数据持久化功能。

监控类 - FileWatcher,代码如下:

        /// <summary>
        /// 监控是否正在运行
        /// </summary>
        public bool IsWatch
        {
            get
            {
                return _isWatch;
            }
        }

        /// <summary>
        /// 文件变更信息队列
        /// </summary>
        public CustomQueue<FileChangeInformation> FileChangeQueue
        {
            get
            {
                return _queue;
            }
        }

        /// <summary>
        /// 初始化FileWatcher类
        /// </summary>
        /// <param name="path">监控路径</param>
        public FileWatcher(string path)
        {
            _path = path;
            _queue = new CustomQueue<FileChangeInformation>();
        }
        /// <summary>
        /// 初始化FileWatcher类,并指定是否持久化文件变更消息
        /// </summary>
        /// <param name="path">监控路径</param>
        /// <param name="isPersistence">是否持久化变更消息</param>
        /// <param name="persistenceFilePath">持久化保存路径</param>
        public FileWatcher(string path, bool isPersistence, string persistenceFilePath)
        {
            _path = path;
            _queue = new CustomQueue<FileChangeInformation>(isPersistence, persistenceFilePath);
        }

        /// <summary>
        /// 初始化FileWatcher类,并指定是否监控指定类型文件
        /// </summary>
        /// <param name="path">监控路径</param>
     &nb

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#采用FileSystemWatcher实现监视磁盘文件变更的方法
  • C#的FileSystemWatcher用法实例详解
  • c#使用filesystemwatcher实时监控文件目录的添加和删除
  • c#使用filesystemwatcher监视文件系统的变化
  • c#实现数据同步的方法(使用文件监控对象filesystemwatcher)

相关文章

  • 2017-05-28C#泛型相关讲解
  • 2017-05-28C# 拓展方法的简单实例
  • 2017-05-28c# 接口interface基础入门小例子
  • 2017-05-28使用C#发送Http请求实现模拟登陆实例
  • 2017-05-28C#开发纽曼USB来电小秘书客户端总结
  • 2017-05-28C#基础:基于const与readonly的深入研究
  • 2017-05-28C#导入导出EXCEL文件的代码实例
  • 2017-05-28C#测量程序运行时间及cpu使用时间实例方法
  • 2017-05-28C#加密在实际中的应用
  • 2017-05-28.NET实现:将EXE设置开机自动启动

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • OpenXml读写Excel实例代码
    • C#自定义序列化ISerializable的实现方法
    • C#实现将类的内容写成JSON格式字符串的方法
    • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
    • C# Socket连接请求超时机制实现代码分享
    • C#读取csv格式文件的方法
    • C#实现可捕获几乎所有键盘鼠标事件的钩子类完整实例
    • C# 大小写转换(金额)实例代码
    • 算法练习之从String.indexOf的模拟实现开始
    • C# DataTable中查询指定字段名称的数据

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有