C#⽂件监控,任何⽂件夹或⽂件修改后,如何⽴即触发监控⼀、场景
有时候,我们需要监控⽂件夹的变化,然后做出⼀些业务处理,这⾥⾯,最典型的例⼦,估计前端攻城狮⽼熟的,就是各种打包了。
那么在C#后端,也会遇到要监控变化的情况,像⽹盘等。
⼆、C#中的⽂件监控
可以⽤钩⼦函数来处理,这种会处理得让你抓狂,⼀可能是太多消息事件,你头都⼤,⼆估计你不是C/C++的程序员,对win32函数本⾝就不熟,资料都要你⽼费劲了。
那么C#中的⽂件监控还有什么办法呢?C#庞⼤的类库中,提供了FileSystemWatcher类,该类可以专门⽤于⽂件夹监控,下⾯是该类的api定义:
三、FileSystemWatcher的功能
FileSystemWatcher可以根据您设定的⽂件夹进⾏监控,动作覆盖创建、删除、改动、重命名等。另外还可以动态地定义需要监控的⽂件类型,⽐如您只想监控rar⽂件、txt⽂件,⼜或者您想同时监控多种⽂件都可以。
四、FileSystemWatcher常⽤属性
词语
1. Path:要监视的⽂件夹路径。这是⽂件夹(也叫⽬录)路径,不是具体的某⼀个⽂件的路径,⽆法对单个具体⽂件监控。
2. Filter:筛选监控的⽂件类型,指该⽂件夹下的某种类型的⽂件,⽐如*.txt、*.rar、*.html⽂件。
3. NotifyFilter:监视什么动作类型。本属性是位域,允许进⾏位运算的。⽐如可以监视修改、⽬录名、⽂件名更改、修改时间等。
4. IncludeSubdirectories:是否监控⼦⽂件夹。即级联监控。
5. EnableRaisingEvents:是否启动本组件。这个新⼿很容易出问题的地⽅,本属性等于是个开关。新⼿以为FileSystemWatcher创建
⼀个新对象new⼀下,就可以使⽤了,不是的,new了对象之后,要记得把本属性设置为true,才是真正开始⽤。
五、FileSystemWatcher常⽤事件
1. Created:当创建⽂件夹,或者创建⽂件时,触发
2. Changed:更新⽂件夹或者⽂件时触发
记得 张惠妹3. Renamed:重命名⽂件夹或者⽂件时触发
4. Deleted:删除⽂件夹或者⽂件时触发
六、简单⽰例
上图是代码截图,源码如下:
using System;battletag
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp2昆虫标本制作
{
public partial class Form1 : Form
{
public Form1()
{
FileSystemWatcher watcher = new FileSystemWatcher(@"E:\test\");
watcher.IncludeSubdirectories = true;
watcher.Deleted += Watcher_Deleted;
watcher.Created += Watcher_Created;
watcher.Renamed += Watcher_Renamed;
watcher.EnableRaisingEvents = true;
永久删除照片回}
聊天怎么拍一拍private void Watcher_Renamed(object sender, RenamedEventArgs e)
{
}
private static void Watcher_Deleted(object sender, FileSystemEventArgs e) {
}
private static void Watcher_Created(object sender, FileSystemEventArgs e) {
}
}
}
运⾏效果,当您在E:\test进⾏⽂件夹或者⽂件操作时,将触发监控。
祝您⽤餐愉快。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论