博客
关于我
C# WinForm 监视文件变化程序
阅读量:298 次
发布时间:2019-03-03

本文共 1589 字,大约阅读时间需要 5 分钟。

C# WinForm 监视文件变化程序

前言

最近做项目,遇到一个需求,要求是能监控windows系统中某个文本文件的变化,一旦文件变化,要能捕获到这个事件,然后做出相应。实现起来也很简单,见下文。

效果图

演示效果如下:

当watchme.txt文件内容发生变化,程序能够检测到这个事件,捕获变化文件的路径,为后续读取文件内容做相应的逻辑处理提供前提条件。
在这里插入图片描述

步骤

第一步、创建FileSystemWatcher对象

在工具箱中找到FileSystemWatcher对象,然后拖到窗体中。

在这里插入图片描述
然后给这个FileSystemWatcher对象取一个name就叫fileSystemWatcher好了。

第二步、创建窗体的Load事件

选中窗体后,在右侧编辑框中选中事件(闪电图标),然后双击生成load方法。

在这里插入图片描述
同时给load事件添加一个startMonitor()方法

// 窗体启动事件代码 private void Form1_Load(object sender, EventArgs e) {
startMonitor();//开始监视:文件创建 }

第三步、编写startMonitor()函数

直接贴代码好了:

// 监视函数        private void startMonitor()        {
String path = @"D:\demo";//需要监控文件的路径 this.fileSystemWatcher = new FileSystemWatcher(); this.fileSystemWatcher.Path = path; this.fileSystemWatcher.Filter = "*.txt";//需要监控的文件类型Filter可以包含多种类型.doc,甚至access数据库的mdb文件也可以。 this.fileSystemWatcher.Changed += new System.IO.FileSystemEventHandler(this.Changed);//这个Changed函数是要自己写的。 this.fileSystemWatcher.IncludeSubdirectories = true; this.fileSystemWatcher.SynchronizingObject = this; this.fileSystemWatcher.EnableRaisingEvents = true; }

第四步、编写Changed()函数

Changed函数是你自己定义的,用于处理你捕获到这个事件后处理的逻辑。直接贴代码好了:

// 这里开始就是写你捕获到这个文件变化后,想要进行的逻辑处理        private void Changed(object sender, System.IO.FileSystemEventArgs e)        {
lock (this) {
//这里开始就是写你捕获到这个文件变化后,想要进行的逻辑处理 //是读取文件内容,解析后,写入数据库啊,还是通过接口发送啊等等,看你实际需求。 MessageBox.Show(e.FullPath, "提示"); } }

结束

一般这种监控程序都要搭配最小化托盘开机自启等常规操作,这些做法后续有空我就补上~。

转载地址:http://zfbq.baihongyu.com/

你可能感兴趣的文章
windows程序设计(4):文本输出
查看>>
21.2.3总结
查看>>
线性代数和数学期望杂题
查看>>
【SSL_P2876】2017年东莞市信息学特长生测试题 工程
查看>>
【洛谷_P1433】吃奶酪
查看>>
赠书和投票 | 你知道中国有哪些Server SAN厂商吗? 投票:你心目最好的HCI品牌是?
查看>>
Base理论介绍
查看>>
volatile关键字和AtomicInteger
查看>>
redisTemplate.opsForHash()
查看>>
maven生命周期
查看>>
方法的绑定机制-静态绑定和动态绑定
查看>>
服务调用
查看>>
GateWay限流
查看>>
setnx
查看>>
Java取绝对值
查看>>
线程的start()方法
查看>>
for循环读取数组遇问题:dexError: invalid index to scalar variable.
查看>>
编写测试用例的实用小技巧
查看>>
c语言贪吃蛇控制台版
查看>>
Windows10 下springboot应用无法被外部网络访问
查看>>