编程语言
首页 > 编程语言> > C#(098):文件监视 FileSystemWatcher

C#(098):文件监视 FileSystemWatcher

作者:互联网

FileSystemWatcher

[FileSystemWatcher 类 (System.IO) | Microsoft
Docs](https://docs.microsoft.com/zh-
cn/dotnet/api/system.io.filesystemwatcher?view=net-5.0)

1、构造函数

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

    public FileSystemWatcher (string path, string filter);

2、实例:

下面的示例创建[FileSystemWatcher](https://docs.microsoft.com/zh-
cn/dotnet/api/system.io.filesystemwatcher?view=netframework-4.6)监视在运行时指定的目录。
该组件设置为监视中的更改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}");

标签:098,FileSystemWatcher,Console,C#,void,watcher,static,监视
来源: https://www.cnblogs.com/springsnow/p/16272419.html