类:System.IO.FileSystemWatcher

首次接触到这个类是在这样的一个用户需求中:
当时需要用一个路径导入资料进DB,导入成功后清除文件;本来新建了一个测试的文件夹,但是文件进来的时机等等不能跟实际相符;又不能直接上线至正式环境;
所以考虑到:将正式环境的文档实时的拷贝至测试环境,也就是文件同步。这才在网上找到这个类,用起来还是挺好的;可以监控文件、文件夹、新建、删除、编辑、修改时间等等。

若要检测某文件夹变化以执行相应程序或代码,可使用System.IO.FileSystemWatcher类

该类提供以下属性和事件:

fsw.Path = “C:\\”; //设置监控的文件目录 
  
fsw.IncludeSubdirectories = true; //设置监控C盘目录下的所有子目录 
  
fsw.Filter = "*.txt|*.doc|*.jpg"; //设置监控文件的类型 
  
fsw.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.Size; //设置文件的文件名、目录名及文件的大小改动会触发Changed事件 
  
fsw.Created += new FileSystemEventHandler(this.fileSystemWatcher_EventHandle); //绑定事件触发后处理数据的方法。 
  
fsw.Deleted += new FileSystemEventHandler(this.fileSystemWatcher_EventHandle); 
   
 fsw.Changed += new FileSystemEventHandler(this.fileSystemWatcher_EventHandle); 
   
 fsw.Renamed += new RenamedEventHandler(this.fileSystemWatcher_Renamed); //重命名事件与增删改传递的参数不一样。 
  
fsw.EnableRaisingEvents = true; //启动监控

设置好检测路径,开启检测后,会在文件夹发生新增/修改/删除时出发相应事件,以操作其他程序或代码。

在使用该类时,也遇到过一些问题,如:

1. 当检测到新建时,不能判断是文件新建还是文件夹新建;

后来用的 If File.Exists(e.FullName) then .. 表示新建的是文件

2. 新建文件后,将文件拷贝至另外的文件夹,由于是ftp传输,文件尚没有传输完毕,故Copy会报错,后来用了俩个方案一起:

1. System.Threading.Thread.Sleep(100) 使系统等待100ms,不至于那么快…

2. 使用While循环,不断的拷贝文件,直到拷贝成功为止;(需设置重复次数 or 时间)

3. 部署至服务器上后,Winform启动的时候直接报错

纠结了很久,后来才发现,由于filesystemwatcher在Winform界面设置的path为D:\AOI1,是我做测试时的一个本地路径,服务器上没有;故,即使在Winform Load时修改fsw.path也是来不及了;后来干脆在Winform界面直接填写path为C:\,设置EnableRaisingEvents为False;在Load Winform时,设置path,再修改EnableRaisingEvents属性为true

----Jump
2014/02/18

关于FileSystemWatcher类相关推荐

  1. 文件监视器( FileSystemWatcher) 类的使用

    正如你所想象的,文件监视器类的作用正如其字面含义,它监视一个系统文件,你只需给一个路径,它将触发一个事件当这个路径下文件变化时.它可以监视文件的"重命名","删除&quo ...

  2. FileSystemWatcher 类

    命名空间: System.IO 程序集: System.IO.FileSystem.Watcher.dll, System.dll, netstandard.dll 侦听文件系统更改通知,并在目录或目 ...

  3. C# 使用FileSystemWatcher类来对一个日志文件的变化进行实时监测

    C# 使用FileSystemWatcher类来对一个日志文件的变化进行实时监测 应用场景描述:在我的工作中,遇到这么一个情况,有一个没有源码的程序A,用来读取设备的状态信息,然后将这个状态信息写入一 ...

  4. System.IO.FileSystemWatcher 类

    侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件.以下摘自MSDN 使用 FileSystemWatcher 监视指定目录中的更改.可监视指定目录中的文件或子目录的更改.可以创建一个组件 ...

  5. C# fileSystemWatcher类的Changed事件触发多次解决办法

    private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e) {fileSystemW ...

  6. FileSystemWatcher使用方法具体解释

    FileSystemWatcher控件主要功能: 监控指定文件或文件夹的文件的创建.删除.修改.重命名等活动.能够动态地定义须要监控的文件类型及文件属性修改的类型. 1.经常使用的几个基本属性: (1 ...

  7. C# FileSystemWatcher 在监控文件夹和文件时的用法

    ********************************************************************************** 第一个文章: ********** ...

  8. FileSystemWatcher 监控文件变化

    本文测试了FileSystemWatcher 类监控文件变化. using System; using System.Security.Permissions; using System.IO;nam ...

  9. C# FileSystemWatcher监听文件夹

    用FileSystemWatcher监听文件夹 很久没有写windows服务了,这两天做了一个监听文件夹的服务,用FileSystemWatcher类监听文件夹,如果有新创建的xml文件,就把xml文 ...

最新文章

  1. 职业经理十项管理技能必修课
  2. Oracle 中重新编译无效的存储过程, 或函数、触发器等对象(转)
  3. LeetCode 208. 实现 Trie (前缀树) —— 提供一套前缀树模板
  4. xml报错:xml.etree.ElementTree.ParseError: not well-formed (invalid token)
  5. 特殊年份(java)
  6. WEB前端常用JavaScript代码整理(二)
  7. Noip模拟题解题报告
  8. 三国演义人物出场统计代码含义_用python分析小说人物关系(二)——实战篇
  9. Atiitt 流水线停顿问题与解决方法 1. 流水线技术方式分类 1 2. 但在实际中,会出现2种情况使流水线停顿下来或不能启动: 2 2.1. 1、多个任务在同一时间周期内争用同一个流水段 2 2
  10. Mac WebStorm 破解
  11. 十一、 人工变量之 “大M” 法
  12. 干货分享!手机中不可或缺的5个APP神器
  13. 解决ubuntu 18.04平台上thinkpad小红点TrackPoint左键随机失效的问题(by quqi99)
  14. 软考倒计时26天,最后冲刺阶段
  15. 甘肃一名高考生偷偷带手机进考场,拍题并上传到网上出钱求答案……
  16. JAVA计算机毕业设计晨光文具店进销存系统设计与开发计算机(附源码、数据库)
  17. python输入一个数字n、计算1到n的和_怎么用python求1到n所有整数的和
  18. 亚马逊刷单测评的正确方法是什么样的?
  19. 【Unity3D-Mirror多人坦克大战】生命盾牌物品的创建、物品动画的创建(九)
  20. Gitee Pages Pro + Hexo自定义域名

热门文章

  1. python 变量前怎么加r
  2. 实现Vibrator测试功能,短震动,长震动,频率震动,取消震动
  3. SecureCRT常用的几个命令
  4. Windows11 运行安卓子系统 教程
  5. linux里面sftp命令,Linux中sftp命令起什么作用呢?
  6. keras:Convolution2D与Conv2D
  7. 华擎主板bios设置图解_华擎主板bios设置_华擎主板bios设置图解_asrock主板bios设置...
  8. LeetCode994 Rotting Oranges解题方案
  9. VBS识别网页验证码
  10. Linux安装数据库