FileSystemWatcher Components

本文详细介绍了如何使用FileSystemWatcher组件来监视文件系统的变化,包括文件或文件夹的创建、删除、重命名以及属性变更等事件。文章还探讨了如何配置监视器以提高其效率,并解决了在大容量系统中可能出现的问题。
[概述]
只能监视设定目录下的文件及文件夹,不能监视根目录

可以监视的事件
    Created:文件或文件夹生成
    Deleted:文件或文件夹删除
    Renamed:文件或文件夹重命名
    Changed:文件或文件夹的树型更改(大小,属性,最后读/写或安全设置变化)

[创建]
    System.IO.FileSystemWatcher myWatcher = new System.IO.FileSystemWatcher();

[配置]
监视文件夹
    Path: 监视的路径(c:\directory或\\server\directory)
    IncludeSubdirectories: 是否包含子文件夹

监视事件
    Created, Deleted, Renamed, Changed
    Filter: 监视指定的文件类型,如 *.txt;或指定的子文件夹
    NotifyFilter: 可以限定只监视某些事件的发生(可用|组合)
    EnableRaisingEvents: 是否开始监视

[事件]
    可以处理的事件
    Created, Deleted, Renamed, Changed

[方法]
    WaitForChanged: (在一设定的时间内)等待某个事件的发生

[问题]
    对于应用程序产生的文件,有可能引起多个Created事件的触发
    如记事本新建文件
        应用程序级别是批处理写入文件内容和文件属性
        操作系统却是两个创建事件的发生

[大容量系统]
    缓冲区溢出的解决方法
        设置InternalBufferSize属性
            默认为4K,相当于可以监视80个文件
            最好是4K(操作系统默认页面大小)的n倍增加缓冲区
            或者是对原先的大小成倍增加(推荐)
        设置NotifyFilter属性
        设置IncludeSubdirectories属性

转载于:https://www.cnblogs.com/zygoses2gether/archive/2007/07/03/FileSystemWatcher.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值