从文件中捕获事件的 C# 程序


欢迎阅读我们关于创建 C# 程序以从文件中捕获事件的综合指南。无论您是 C# 编程初学者还是中级程序员,本文都将为您提供有效使用 C# 进行文件事件处理的知识和技能。

文件事件简介

文件事件是系统级通知,当创建、修改、删除或重命名文件或目录时发生。监控这些事件允许程序对文件系统中的更改做出反应,这在各种场景中都非常有用,例如日志监控、文件同步等等。

了解 FileSystemWatcher

在 C# 中,FileSystemWatcher 类用于侦听文件系统中的更改。它可以监视文件和目录中的更改,并在发生此类更改时触发事件。

FileSystemWatcher 提供多个事件,包括:

  • Created − 当在指定路径中创建文件或目录时发生。

  • Changed − 当指定路径中的文件或目录发生更改时发生。

  • Deleted − 当从指定路径中删除文件或目录时发生。

  • Renamed − 当指定路径中的文件或目录被重命名时发生。

创建 C# 程序以捕获文件事件

现在,让我们创建一个使用 FileSystemWatcher 监视特定目录并在创建、修改或删除文件时打印消息的 C# 程序。

using System;
using System.IO;

class Program {
   static void Main() {
      // Specify the directory to monitor
      string directory = @"C:\temp";
      
      // Create a new FileSystemWatcher
      FileSystemWatcher watcher = new FileSystemWatcher(directory);
      
      // Register event handlers
      watcher.Created += (s, e) => Console.WriteLine($"File created: {e.FullPath}");
      watcher.Changed += (s, e) => Console.WriteLine($"File changed: {e.FullPath}");
      watcher.Deleted += (s, e) => Console.WriteLine($"File deleted: {e.FullPath}");
      
      // Start monitoring
      watcher.EnableRaisingEvents = true;
      
      // Wait for user to quit program
      Console.WriteLine("Press 'q' to quit the sample.");
      while (Console.Read() != 'q') ;
   }
}

在这个程序中,我们首先指定要监视的目录。然后,我们为该目录创建一个 FileSystemWatcher,并为 Created、Changed 和 Deleted 事件注册事件处理程序。每个事件处理程序都是一个 lambda 函数,它将消息打印到控制台。然后,我们将 EnableRaisingEvents 设置为 true 以开始监控。

高级 FileSystemWatcher 功能

FileSystemWatcher 类还提供高级功能,可以更精细地控制文件监控。例如,您可以使用 Filter 属性指定要监视的文件类型。您还可以使用 NotifyFilter 属性指定要监视的更改类型,例如文件大小、上次写入时间或安全设置的更改。

结论

在本教程中,我们学习了如何使用 FileSystemWatcher 类创建 C# 程序来捕获文件事件。此类提供了一个简单而强大的工具来监控文件系统中的更改,使您的应用程序能够实时响应文件或目录的创建、修改、删除等等。

虽然我们已经介绍了基础知识,但 FileSystemWatcher 中还有更多高级功能值得探索。您可以微调要监视的更改类型或要监视的文件类型,从而更精细地控制文件系统监视任务。

监控文件事件是许多应用程序中的常见需求,而 C# 通过其内置类和事件驱动编程模型使此任务变得简单明了。通过了解如何使用 FileSystemWatcher,您已获得了 C# 编程工具包中宝贵的工具。

更新于:2023年7月24日

169 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告