在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
属性来指定我们要监视的文件变化类型。在这个示例中,我们监视文件的修改、创建、删除和重命名操作。
接着,我们订阅了Changed
、Created
、Deleted
和Renamed
事件,分别在文件发生相应的变化时触发。在事件处理程序中,我们打印出文件的路径和变化类型。
最后,我们通过设置EnableRaisingEvents
属性为true
来启用文件系统监视,并在控制台中等待用户按下q
键来退出程序。
这样,我们就可以使用FileSystemWatcher
类来监视文件系统中文件的变化。