C#(99):文件监视 FileSystemWatcher

FileSystemWatcher

FileSystemWatcher 类 (System.IO) | Microsoft Docs

1、构造函数

给定要监视的指定目录和文件类型,初始化 FileSystemWatcher 类的新实例。

public FileSystemWatcher (string path, string filter);

2、实例:

下面的示例创建FileSystemWatcher监视在运行时指定的目录。 该组件设置为监视中的更改LastWriteLastAccess时间、 创建、 删除、 或重命名的目录中的文本文件。

如果文件是更改、 创建,或删除,文件的路径将打印到控制台。 在一个文件重命名后,旧的和新路径将打印到控制台。

static void Main()
{
    Run();
}

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
private static void Run()
{
    // 创建一个新的FileSystemWatcher并设置其属性.
    using (FileSystemWatcher watcher = new FileSystemWatcher())
    {

        watcher.Path = "C:\\aa\\";
        
// 只监视文本文件.
        watcher.Filter = "*.txt";
        // 监视LastAccess和LastWrite时间的变化,以及文件或目录的重命名.
        watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;// 添加事件处理程序.
        watcher.Changed += OnChanged;
        watcher.Created += OnChanged;
        watcher.Deleted += OnChanged;
        watcher.Renamed += OnRenamed;

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

        // 等待用户退出程序.
        Console.WriteLine("Press 'q' to quit the sample.");
        while (Console.Read() != 'q') ;
    }
}

// 定义事件处理程序。指定在更改、创建或删除文件时执行的操作.
private static void OnChanged(object source, FileSystemEventArgs e) => Console.WriteLine($"File: {e.FullPath} {e.ChangeType}");
// 指定重命名文件时执行的操作.
private static void OnRenamed(object source, RenamedEventArgs e) => Console.WriteLine($"File: {e.OldFullPath} renamed to {e.FullPath}");

 

posted on 2021-04-29 17:27  springsnow  阅读(487)  评论(0编辑  收藏  举报

导航