在日常开发中,我们经常需要对文件系统的变动做出响应,比如当某个目录下的文件被创建、修改或删除时自动执行某些操作。C# 提供了一个非常强大的类——FileSystemWatcher,它能帮助我们轻松实现C#文件监控功能。
FileSystemWatcher 是 .NET Framework 中的一个类,位于 System.IO 命名空间下。它可以监视指定目录中的文件或子目录的更改,并在发生创建、删除、重命名或修改等事件时触发相应的事件处理程序。
下面我们从零开始,用 Visual Studio 创建一个控制台应用程序,演示如何使用 FileSystemWatcher 实现 实时文件变化检测。
打开 Visual Studio,选择“创建新项目” → “控制台应用(.NET Core 或 .NET Framework)” → 命名为 FileMonitorDemo。
在 Program.cs 文件中,替换为以下代码:
using System;using System.IO;class Program{ static void Main(string[] args) { // 要监控的目录路径(请根据实际情况修改) string pathToWatch = @"C:\MyMonitoredFolder"; // 确保目录存在 if (!Directory.Exists(pathToWatch)) { Directory.CreateDirectory(pathToWatch); Console.WriteLine($"已创建监控目录:{pathToWatch}"); } // 创建 FileSystemWatcher 实例 using (FileSystemWatcher watcher = new FileSystemWatcher()) { watcher.Path = pathToWatch; // 监控所有文件(*.*) watcher.Filter = "*.*"; // 设置要监听的变更类型 watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; // 注册事件处理程序 watcher.Changed += OnChanged; watcher.Created += OnCreated; watcher.Deleted += OnDeleted; watcher.Renamed += OnRenamed; // 开始监控 watcher.EnableRaisingEvents = true; Console.WriteLine($"正在监控目录:{pathToWatch}"); Console.WriteLine("按任意键退出..."); Console.ReadKey(); } } // 文件/目录被修改 private static void OnChanged(object source, FileSystemEventArgs e) { Console.WriteLine($"[修改] {e.FullPath}"); } // 文件/目录被创建 private static void OnCreated(object source, FileSystemEventArgs e) { Console.WriteLine($"[创建] {e.FullPath}"); } // 文件/目录被删除 private static void OnDeleted(object source, FileSystemEventArgs e) { Console.WriteLine($"[删除] {e.FullPath}"); } // 文件/目录被重命名 private static void OnRenamed(object source, RenamedEventArgs e) { Console.WriteLine($"[重命名] 从 {e.OldFullPath} 到 {e.FullPath}"); }}
*.txt 只监控文本文件。true 才会真正开始监听。1. 权限问题:确保程序有权限访问目标目录。
2. 缓冲区溢出:如果短时间内发生大量文件变更,可能触发 Error 事件。建议注册该事件并适当增大 InternalBufferSize(默认 8KB)。
3. 跨平台兼容性:在 .NET Core / .NET 5+ 中,FileSystemWatcher 在 Linux 和 macOS 上也支持,但行为可能略有不同。
通过本教程,你已经掌握了如何使用 C# 的 FileSystemWatcher 类来实现 C#文件系统监听。无论是日志监控、自动备份还是热加载配置,这项技术都非常实用。
记住,良好的错误处理和资源释放(如使用 using 语句)是编写健壮监控程序的关键。
关键词回顾:C#文件监控、FileSystemWatcher教程、C#文件系统监听、实时文件变化检测。
本文由主机测评网于2025-12-15发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025128115.html