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

本文共 1585 字,大约阅读时间需要 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/

你可能感兴趣的文章
用float/double作为中转类型的“雷区”
查看>>
golang中interface的一些语法缺陷的改进
查看>>
vue-router路由 学习笔记
查看>>
【数据库】第七章课后题
查看>>
第四章 串、数组和广义表 —— BF算法和KMP算法
查看>>
[选拔赛1]花园(矩阵快速幂),JM的月亮神树(最短路),保护出题人(斜率优化)
查看>>
DLA:一种深度网络特征融合方法
查看>>
leetcode114(二叉树展开为链表)
查看>>
java —— static 关键字
查看>>
在 Python 调试过程中设置不中断的断点 | Linux 中国
查看>>
使用开源可视化工具来理解你的 Python 代码 | Linux 中国
查看>>
硬核观察 | 有人在比特币骗局中损失了 10 个比特币
查看>>
使用 top 命令了解 Fedora 的内存使用情况 | Linux 中国
查看>>
怎样解决 “sub process usr bin dpkg returned an error code 1” 错误
查看>>
8皇后问题 递归 函数调用是重点
查看>>
1541 +1 *2 ²
查看>>
面试别慌!阿里专家带你从【入门+基础+进阶+项目】攻破SpringBoot
查看>>
【Java面试】30个 Java 集合面试必备的问题和答案
查看>>
华为鸿蒙到底是不是安卓系统套了个壳?
查看>>
fragment中recyclerview的重新加载问题
查看>>