现在的位置: 首页 > 综合 > 正文

FileSystemWatcher Components

2012年04月24日 ⁄ 综合 ⁄ 共 813字 ⁄ 字号 评论关闭
[概述]
只能监视设定目录下的文件及文件夹,不能监视根目录

可以监视的事件
    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属性

抱歉!评论已关闭.