ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#(098):文件监视 FileSystemWatcher

2022-05-15 10:02:17  阅读:233  来源: 互联网

标签:098 FileSystemWatcher Console C# void watcher static 监视


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有