关于FileSystemWatcher类
类: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类相关推荐
- 文件监视器( FileSystemWatcher) 类的使用
正如你所想象的,文件监视器类的作用正如其字面含义,它监视一个系统文件,你只需给一个路径,它将触发一个事件当这个路径下文件变化时.它可以监视文件的"重命名","删除&quo ...
- FileSystemWatcher 类
命名空间: System.IO 程序集: System.IO.FileSystem.Watcher.dll, System.dll, netstandard.dll 侦听文件系统更改通知,并在目录或目 ...
- C# 使用FileSystemWatcher类来对一个日志文件的变化进行实时监测
C# 使用FileSystemWatcher类来对一个日志文件的变化进行实时监测 应用场景描述:在我的工作中,遇到这么一个情况,有一个没有源码的程序A,用来读取设备的状态信息,然后将这个状态信息写入一 ...
- System.IO.FileSystemWatcher 类
侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件.以下摘自MSDN 使用 FileSystemWatcher 监视指定目录中的更改.可监视指定目录中的文件或子目录的更改.可以创建一个组件 ...
- C# fileSystemWatcher类的Changed事件触发多次解决办法
private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e) {fileSystemW ...
- FileSystemWatcher使用方法具体解释
FileSystemWatcher控件主要功能: 监控指定文件或文件夹的文件的创建.删除.修改.重命名等活动.能够动态地定义须要监控的文件类型及文件属性修改的类型. 1.经常使用的几个基本属性: (1 ...
- C# FileSystemWatcher 在监控文件夹和文件时的用法
********************************************************************************** 第一个文章: ********** ...
- FileSystemWatcher 监控文件变化
本文测试了FileSystemWatcher 类监控文件变化. using System; using System.Security.Permissions; using System.IO;nam ...
- C# FileSystemWatcher监听文件夹
用FileSystemWatcher监听文件夹 很久没有写windows服务了,这两天做了一个监听文件夹的服务,用FileSystemWatcher类监听文件夹,如果有新创建的xml文件,就把xml文 ...
最新文章
- 职业经理十项管理技能必修课
- Oracle 中重新编译无效的存储过程, 或函数、触发器等对象(转)
- LeetCode 208. 实现 Trie (前缀树) —— 提供一套前缀树模板
- xml报错:xml.etree.ElementTree.ParseError: not well-formed (invalid token)
- 特殊年份(java)
- WEB前端常用JavaScript代码整理(二)
- Noip模拟题解题报告
- 三国演义人物出场统计代码含义_用python分析小说人物关系(二)——实战篇
- Atiitt 流水线停顿问题与解决方法 1. 流水线技术方式分类	1 2. 但在实际中,会出现2种情况使流水线停顿下来或不能启动:	2 2.1. 1、多个任务在同一时间周期内争用同一个流水段	2 2
- Mac WebStorm 破解
- 十一、 人工变量之 “大M” 法
- 干货分享!手机中不可或缺的5个APP神器
- 解决ubuntu 18.04平台上thinkpad小红点TrackPoint左键随机失效的问题(by quqi99)
- 软考倒计时26天,最后冲刺阶段
- 甘肃一名高考生偷偷带手机进考场,拍题并上传到网上出钱求答案……
- JAVA计算机毕业设计晨光文具店进销存系统设计与开发计算机(附源码、数据库)
- python输入一个数字n、计算1到n的和_怎么用python求1到n所有整数的和
- 亚马逊刷单测评的正确方法是什么样的?
- 【Unity3D-Mirror多人坦克大战】生命盾牌物品的创建、物品动画的创建(九)
- Gitee Pages Pro + Hexo自定义域名
热门文章
- python 变量前怎么加r
- 实现Vibrator测试功能,短震动,长震动,频率震动,取消震动
- SecureCRT常用的几个命令
- Windows11 运行安卓子系统 教程
- linux里面sftp命令,Linux中sftp命令起什么作用呢?
- keras:Convolution2D与Conv2D
- 华擎主板bios设置图解_华擎主板bios设置_华擎主板bios设置图解_asrock主板bios设置...
- LeetCode994 Rotting Oranges解题方案
- VBS识别网页验证码
- Linux安装数据库