zoukankan      html  css  js  c++  java
  • System.IO.FileSystemWatcher 监视目录文件的状态

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

    这两天看到论坛上关于如何监视目录文件的状态帖子很多,自己今天也在看System.IO下面的类,就顺便把他给看了,并实验了一下,其实此类用起来非常简单,不过有两三个地方需要注意下,下面把需要注意的地方说一下

      System.IO.FileSystemWatcher watch = new FileSystemWatcher("D:\\1\\");       //初始化目录监视
                watch.Filter = "*.txt";                      //监视的对象,目录中监视哪些文件,默认为*.*
               //不过这里有个好玩的地方,实验证明,通配符可以用在很多地方,比如可以设置成为  watch.Filter = "*.tx*";    针对具体文件就写具体文件名
                watch.Changed += new FileSystemEventHandler(watch_Changed);         //文件改变事件
                watch.Created += new FileSystemEventHandler(watch_Created);         //文件添加事件
                watch.Deleted += new FileSystemEventHandler(watch_Deleted);         //文件删除事件
                //otifyFilter:获取或设置要监视的更改类型。
                //下面是csdn例子对文件属性的监视,这里有个问题,就是NotifyFilters.LastAccess | NotifyFilters.LastWrite同时设置的话 Changed事件会运行两次
                //原因就是 LastAccess 文件或文件夹上一次打开的日期。  LastWrite 上一次向文件或文件夹写入内容的日期。 打开文件修改的时候会同时激发
                //这个是要注意的第二点
                watch.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite|NotifyFilters.FileName | NotifyFilters.DirectoryName;
                //要注意的第三点,如果下面不设置为true,事件是不会运行的 EnableRaisingEvents 属性是指示是否启用此组件
                watch.EnableRaisingEvents = true;

      void watch_Deleted(object sender, FileSystemEventArgs e)
            {
                throw new Exception("The method or operation is not implemented.");
            }

            void watch_Created(object sender, FileSystemEventArgs e)
            {
                MessageBox.Show("新增");
            }

            void watch_Changed(object sender, FileSystemEventArgs e)
            {
                MessageBox.Show("改变");
            }

    //基本上要注意的就三点

    1、文件类型过滤,可以指定文件

    2、文件属性过滤,对修改到哪些文件属性监视

    3、记得启用该组件,事件才会运行哦

    其中能用到的文件属性也就四种 NotifyFilters有四种是用不到的

      LastAccess 文件或文件夹上一次打开的日期。 
      LastWrite 上一次向文件或文件夹写入内容的日期。 
      Security 文件或文件夹的安全设置。 
      Size 文件或文件夹的大小。 

  • 相关阅读:
    五月一日工作感悟
    Loadrunner 性能指标
    tcp ,http .udp
    Loadrunner 面试常见问题
    抓包不求人
    性能测试自动化测试平台
    jmeter 控制器
    转:java中String使用equals和==比较的区别
    转:Java对象及对象引用变量
    排序算法小结
  • 原文地址:https://www.cnblogs.com/jacktu/p/954964.html
Copyright © 2011-2022 走看看