阅读量:0
在C#中,可以使用FileSystemWatcher
类来监控文件的变化。以下是一个简单的示例,演示了如何使用FileSystemWatcher
来监控一个文件夹中的文件变化:
using System; using System.IO; namespace FileSystemWatcherExample { class Program { static void Main(string[] args) { // 创建一个新的 FileSystemWatcher 实例 using (FileSystemWatcher watcher = new FileSystemWatcher()) { // 设置要监控的文件夹路径 watcher.Path = @"C:\example_folder\"; // 设置要监控的事件类型 watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; // 注册事件处理程序 watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.Created += new FileSystemEventHandler(OnChanged); watcher.Deleted += new FileSystemEventHandler(OnChanged); watcher.Renamed += new RenamedEventHandler(OnRenamed); // 开始监控文件夹 watcher.EnableRaisingEvents = true; Console.WriteLine("开始监控文件夹:" + watcher.Path); Console.WriteLine("按任意键退出..."); Console.ReadKey(); } } // 当文件或文件夹发生更改时触发的事件处理程序 static void OnChanged(object source, FileSystemEventArgs e) { Console.WriteLine($"文件或文件夹已更改:{e.FullPath}"); } // 当文件或文件夹被重命名时触发的事件处理程序 static void OnRenamed(object source, RenamedEventArgs e) { Console.WriteLine($"文件或文件夹已重命名:{e.OldFullPath} -> {e.FullPath}"); } } }
在这个示例中,我们创建了一个FileSystemWatcher
实例,并设置了要监控的文件夹路径。然后,我们设置了要监控的事件类型(最后访问、最后写入、文件名和目录名),并为这些事件注册了事件处理程序。最后,我们调用EnableRaisingEvents
方法开始监控文件夹。