C#使用FileSystemWatcher实时监控文件目录的添加和删除
FileSystemWatcher是C#中用于监控文件系统更改的类。它可以监视指定目录中的文件和子目录的创建、更改、重命名和删除等操作,并在这些操作发生时引发事件。在本文中,我们将介绍如何使用FileSystemWatcher实时监控文件目录的添加和删除。
步骤一:创建FileSystemWatcher对象
要使用FileSystemWatcher监控文件目录的添加和删除,我们首先需要创建一个FileSystemWatcher对象。在创建FileSystemWatcher对象时,我们需要指定要监视的目录路径、要监视的文件类型、是否监视子目录等参数。
以下是创建FileSystemWatcher对象的示例代码:
using System.IO;
// 创建FileSystemWatcher对象
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\MyFolder"; // 要监视的目录路径
watcher.Filter = "*.txt"; // 要监视的文件类型
watcher.IncludeSubdirectories = true; // 是否监视子目录
在上面的示例代码中,我们创建了一个名为watcher的FileSystemWatcher对象,并指定了要监视的目录路径为C:\MyFolder,要监视的文件类型为txt文件,以及是否监视子目录。
步骤二:注册事件处理程序
在创建FileSystemWatcher对象后,我们需要注册事件处理程序,以便在文件目录中添加或删除文件时执行相应的操作。FileSystemWatcher类提供了多个事件,包括Created、Deleted、Changed、Renamed等事件,我们可以根据需要注册相应的事件处理程序。
以下是注册事件处理程序的示例代码:
// 注册事件处理程序
watcher.Created += new FileSystemEventHandler(OnFileCreated);
watcher.Deleted += new FileSystemEventHandler(OnFileDeleted);
// 定义事件处理程序
private static void OnFileCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine("文件 {0} 已添加", e.Name);
}
private static void OnFileDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine("文件 {0} 已删除", e.Name);
}
在上面的示例代码中,我们注册了Created和Deleted事件的事件处理程序OnFileCreated和OnFileDeleted。当文件目录中添加或删除文件时,FileSystemWatcher对象将引发相应的事件,并调用相应的事件处理程序。
示例一:监控文件目录中的文件添加
以下是使用FileSystemWatcher监控文件目录中的文件添加的示例代码:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// 创建FileSystemWatcher对象
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\MyFolder";
watcher.Filter = "*.txt";
watcher.IncludeSubdirectories = true;
// 注册事件处理程序
watcher.Created += new FileSystemEventHandler(OnFileCreated);
// 开始监控
watcher.EnableRaisingEvents = true;
Console.WriteLine("正在监控文件目录中的文件添加,请按任意键退出...");
Console.ReadKey();
}
private static void OnFileCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine("文件 {0} 已添加", e.Name);
}
}
在上面的示例代码中,我们创建了一个名为watcher的FileSystemWatcher对象,并注册了Created事件的事件处理程序OnFileCreated。在程序运行时,FileSystemWatcher对象将开始监控文件目录中的文件添加,并在文件添加时调用OnFileCreated方法。
示例二:监控文件目录中的文件删除
以下是使用FileSystemWatcher监控文件目录中的文件删除的示例代码:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// 创建FileSystemWatcher对象
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\MyFolder";
watcher.Filter = "*.txt";
watcher.IncludeSubdirectories = true;
// 注册事件处理程序
watcher.Deleted += new FileSystemEventHandler(OnFileDeleted);
// 开始监控
watcher.EnableRaisingEvents = true;
Console.WriteLine("正在监控文件目录中的文件删除,请按任意键退出...");
Console.ReadKey();
}
private static void OnFileDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine("文件 {0} 已删除", e.Name);
}
}
在上面的示例代码中,我们创建了一个名为watcher的FileSystemWatcher对象,并注册了Deleted事件的事件处理程序OnFileDeleted。在程序运行时,FileSystemWatcher对象将开始监控文件目录中的文件删除,并在文件删除时调用OnFileDeleted方法。
总结
综上所述,我们可以使用FileSystemWatcher类实现实时监控文件目录的添加和删除。我们可以创建FileSystemWatcher对象,并注册相应的事件处理程序,以便在文件目录中添加或删除文件时执行相应的操作。FileSystemWatcher类提供了多个事件,包括Created、Deleted、Changed、Renamed等事件,我们可以根据需要注册相应的事件处理程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#使用filesystemwatcher实时监控文件目录的添加和删除 - Python技术站