温馨提示×

C# Directory类如何监视文件变化

c#
小樊
100
2024-08-05 13:49:12
栏目: 编程语言

在C#中,可以使用FileSystemWatcher类来监视文件系统中的文件变化。以下是一个简单的示例:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = @"C:\path\to\directory";
        
        watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
        
        watcher.Filter = "*.*";

        watcher.Changed += OnChanged;
        watcher.Created += OnChanged;
        watcher.Deleted += OnChanged;
        watcher.Renamed += OnRenamed;

        watcher.EnableRaisingEvents = true;

        Console.WriteLine("Press 'q' to quit the program.");
        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}");
    }
}

在这个示例中,我们创建了一个FileSystemWatcher对象,并使用Path属性指定要监视的目录。然后,我们设置NotifyFilter属性来指定我们要监视的文件变化类型。在这个示例中,我们监视文件的修改、创建、删除和重命名操作。

接着,我们订阅了ChangedCreatedDeletedRenamed事件,分别在文件发生相应的变化时触发。在事件处理程序中,我们打印出文件的路径和变化类型。

最后,我们通过设置EnableRaisingEvents属性为true来启用文件系统监视,并在控制台中等待用户按下q键来退出程序。

这样,我们就可以使用FileSystemWatcher类来监视文件系统中文件的变化。

0