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

正如你所想象的,文件监视器类的作用正如其字面含义,它监视一个系统文件,你只需给一个路径,它将触发一个事件当这个路径下文件变化时.它可以监视文件的"重命名","删除","改变"和"创建".让我们来看一下代码:

FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:/MyDirectory";
watcher.Renamed += new RenamedEventHandler(watcher_Renamed);
watcher.EnableRaisingEvents = true;
正如你所看到的,FileSystemWatcher 的用法相当的简单.这里每一个行为都会被监视的,
一旦你想把这些事件挂上,在这个重命名例子中,你已经设置EnableRaisingEvents 属性为true,
它将开始监视,在这个例子中, 任何在C:/MyDirectory 目录下的文件重命名时,watcher_Renamed 
方法都将被调用, 这个 RenamedEventHandler 包含了很多关于这个重命名文件的有用的信息 - 
像文件的就名字(old file name)和新文件名( new file name). 
void watcher_Renamed(object sender, RenamedEventArgs e)
{
    Console.WriteLine("File Renamed: Old Name: " + e.OldName +
      " New Name: " + e.Name);
}
在这个FileSystemWatcher 类中其他所有的事件将通过一个 FileSystemEventArgs 对象传给事件处理程序.
watcher.Deleted += new FileSystemEventHandler(watcher_Deleted);
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.Created += new FileSystemEventHandler(watcher_Created);
FileSystemEventArgs 包含文件名, 完全路径名和导致事件的行为.  
所以如果你想监视一个单独的文件或者一个单独类型的文件(像.txt文件)这个 FileSystemWatcher 
包含一个 Filter 属性来处理. 
//watches only myFile.txt
watcher.Filter = "myFile.txt";
//watches all files with a .txt extension
watcher.Filter = "*.txt";
这个 Filter 属性能接受通配符. 在这个例子中, 当一个.txt条件的文件改变时,事件将被触发.  
最好FileSystemWatcher 一个重要的属性IncludeSubdirectories. 这个属告诉类去监视你所给文件夹和其子文件夹下的所有文件.
这个FileSystemWatcher 类是简单的, 但当一个文件被"重命名","创建","改变"或"删除"时,请记得这个类.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 `FileSystemWatcher` 来监视文件系统中的更改。这个可以帮助您监视文件或目录的创建、更改、删除或重命名等操作。 以下是一个简单的示例,它使用 `FileSystemWatcher` 来监视指定目录中的文件是否产生: ```csharp using System; using System.IO; class Program { static void Main(string[] args) { // 设置要监视的目录和文件型 string path = @"C:\MyFolder"; string filter = "*.txt"; // 创建一个文件系统监视器对象 FileSystemWatcher watcher = new FileSystemWatcher(path, filter); // 设置监视器属性 watcher.IncludeSubdirectories = false; watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite; // 绑定事件处理程序 watcher.Created += OnCreated; // 开始监视 watcher.EnableRaisingEvents = true; // 等待用户输入 Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } static void OnCreated(object sender, FileSystemEventArgs e) { // 文件创建事件处理程序 Console.WriteLine($"File created: {e.FullPath}"); } } ``` 上面的示例中,我们创建了一个 `FileSystemWatcher` 对象,并设置了要监视的目录和文件型。然后,我们绑定了一个事件处理程序来处理文件创建事件。最后,我们启用了监视器,并等待用户输入,直到程序退出。 注意,`FileSystemWatcher` 是一个异步 API,因此它不会阻塞主线程。如果您需要在事件处理程序中执行长时间运行的操作,建议使用 `Task.Run` 来在后台线程中执行它们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值