📅  最后修改于: 2023-12-03 14:39:42.976000             🧑  作者: Mango
在编程中,有时候需要对某个文件的变化做出及时处理,例如在文件被修改后自动执行某个相关操作。C#提供了一个文件监视器(FileWatcher)类,可以实现对文件的监视和处理。
首先需要引用System.IO命名空间,因为该命名空间包含了FileWatcher类。
using System.IO;
使用FileWatcher类可以创建文件监视器,定义监视的目录和需要监视的文件类型。
string path = @"C:\example";
string fileType = "*.txt";
FileSystemWatcher watcher = new FileSystemWatcher(path, fileType);
当文件发生变化时,FileWatcher类提供了多个事件可以监听,在事件中可以编写相关代码进行处理。
当监视目录下创建了符合需要的文件时,会触发该事件。
watcher.Created += new FileSystemEventHandler(OnCreated);
private void OnCreated(object sender, FileSystemEventArgs e)
{
// TODO: 处理代码
}
当监视中的文件被修改时,会触发该事件。
watcher.Changed += new FileSystemEventHandler(OnChanged);
private void OnChanged(object sender, FileSystemEventArgs e)
{
// TODO: 处理代码
}
当监视中的文件被重命名时,会触发该事件。
watcher.Renamed += new RenamedEventHandler(OnRenamed);
private void OnRenamed(object sender, RenamedEventArgs e)
{
// TODO: 处理代码
}
当监视中的文件被删除时,会触发该事件。
watcher.Deleted += new FileSystemEventHandler(OnDeleted);
private void OnDeleted(object sender, FileSystemEventArgs e)
{
// TODO: 处理代码
}
完成以上设置后,使用watcher.EnableRaisingEvents = true启动文件监视器。
watcher.EnableRaisingEvents = true;
以下是完整的代码示例:
using System.IO;
namespace FileWatcherExample
{
class Program
{
static void Main(string[] args)
{
string path = @"C:\example";
string fileType = "*.txt";
FileSystemWatcher watcher = new FileSystemWatcher(path, fileType);
watcher.Created += new FileSystemEventHandler(OnCreated);
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.Deleted += new FileSystemEventHandler(OnDeleted);
watcher.EnableRaisingEvents = true;
Console.WriteLine("Press 'Q' to quit the sample.");
while (Console.Read() != 'Q') ;
}
private static void OnCreated(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"Created: {e.Name}");
}
private static void OnChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"Changed: {e.Name}");
}
private static void OnRenamed(object sender, RenamedEventArgs e)
{
Console.WriteLine($"Renamed: {e.OldName} to {e.Name}");
}
private static void OnDeleted(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"Deleted: {e.Name}");
}
}
}
以上就是使用C#的文件监视器特定文件的介绍和代码示例,希望对大家有所帮助。