c#使用filesystemwatcher实时监控文件目录的添加和删除


在C#中,你可以使用`FileSystemWatcher`类来监控文件目录中的文件添加和删除操作。以下是一个简单的示例代码,展示了如何设置和使用`FileSystemWatcher`来监控特定目录的更改:


using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 设置要监控的目录
        string directoryToWatch = @"C:\path\to\your\directory";

        // 创建FileSystemWatcher实例
        using (FileSystemWatcher watcher = new FileSystemWatcher())
        {
            // 设置要监控的目录
            watcher.Path = directoryToWatch;

            // 设置监控的文件类型
            // 这里设置为监控所有文件(*.*)
            watcher.NotifyFilter = NotifyFilters.LastAccess
                                 | NotifyFilters.LastWrite
                                 | NotifyFilters.FileName
                                 | NotifyFilters.DirectoryName;

            // 只添加对文件创建和删除事件的监听
            watcher.Created += new FileSystemEventHandler(OnChanged);
            watcher.Deleted += new FileSystemEventHandler(OnChanged);

            // 开始监控
            watcher.EnableRaisingEvents = true;

            // 等待用户输入,以便程序持续运行
            Console.WriteLine("Press 'Enter' to exit the program.");
            Console.ReadLine();
        }
    }

    // 定义文件改变时的事件处理方法
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
        // 显示文件操作类型和文件名
        Console.WriteLine($"File: {e.FullPath} {e.ChangeType}");
    }
}

在这个例子中,`FileSystemWatcher`被设置为监控指定目录(你需要将`@"C:\path\to\your\directory"`替换为你要监控的实际目录路径)。我们为`Created`和`Deleted`事件添加了事件处理程序`OnChanged`,它会在文件被添加或删除时触发,并在控制台中输出相应的信息。

注意,这个示例程序会无限期地运行,直到你按下回车键。在实际应用中,你可能需要根据具体情况来调整程序的行为,比如使用循环而不是等待用户输入来保持程序运行,或者在检测到特定事件后执行更复杂的操作。