C#中的FileSystemWatcher类可以用于监控文件夹和文件的变化,例如创建、修改、删除等操作。本文将提供使用FileSystemWatcher类的完整攻略,包括创建FileSystemWatcher对象、设置监控选项、处理事件、示例等。
创建FileSystemWatcher对象
要使用FileSystemWatcher类,需要创建一个FileSystemWatcher对象。以下是创建FileSystemWatcher对象的代码:
FileSystemWatcher watcher = new FileSystemWatcher();
设置监控选项
要设置FileSystemWatcher对象的监控选项,可以使用以下属性:
- Path:要监控的文件夹路径。
- Filter:要监控的文件类型,例如“*.txt”。
- NotifyFilter:要监控的事件类型,例如文件创建、修改、删除等。
- EnableRaisingEvents:是否启用事件处理。
以下是设置FileSystemWatcher对象监控选项的代码:
watcher.Path = "C:\\example";
watcher.Filter = "*.txt";
watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.EnableRaisingEvents = true;
在上面的示例中,我们设置了要监控的文件夹路径为“C:\example”,要监控的文件类型为“*.txt”,要监控的事件类型为文件修改、文件名更改和文件夹名更改,以及启用事件处理。
处理事件
要处理FileSystemWatcher对象的事件,可以使用以下事件:
- Changed:文件或文件夹被修改。
- Created:文件或文件夹被创建。
- Deleted:文件或文件夹被删除。
- Renamed:文件或文件夹被重命名。
以下是处理FileSystemWatcher对象事件的代码:
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnCreated);
watcher.Deleted += new FileSystemEventHandler(OnDeleted);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
private static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine("File or directory {0} was changed.", e.FullPath);
}
private static void OnCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine("File or directory {0} was created.", e.FullPath);
}
private static void OnDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine("File or directory {0} was deleted.", e.FullPath);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine("File or directory {0} was renamed to {1}.", e.OldFullPath, e.FullPath);
}
在上面的示例中,我们定义了四个事件处理程序,分别处理文件或文件夹被修改、创建、删除和重命名事件。每个事件处理程序都会输出相应的消息。
示例一:监控文件夹中的文件修改
以下是使用FileSystemWatcher类监控文件夹中的文件修改的示例:
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "C:\\example";
watcher.Filter = "*.txt";
watcher.NotifyFilter = NotifyFilters.LastWrite;
watcher.EnableRaisingEvents = true;
watcher.Changed += new FileSystemEventHandler(OnChanged);
private static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine("File {0} was modified.", e.FullPath);
}
在上面的示例中,我们设置了要监控的文件夹路径为“C:\example”,要监控的文件类型为“*.txt”,要监控的事件类型为文件修改,以及启用事件处理。当文件被修改时,事件处理程序将输出相应的消息。
示例二:监控文件夹中的文件创建和删除
以下是使用FileSystemWatcher类监控文件夹中的文件创建和删除的示例:
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "C:\\example";
watcher.Filter = "*.txt";
watcher.NotifyFilter = NotifyFilters.FileName;
watcher.EnableRaisingEvents = true;
watcher.Created += new FileSystemEventHandler(OnCreated);
watcher.Deleted += new FileSystemEventHandler(OnDeleted);
private static void OnCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine("File {0} was created.", e.FullPath);
}
private static void OnDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine("File {0} was deleted.", e.FullPath);
}
在上面的示例中,我们设置了要监控的文件夹路径为“C:\example”,要监控的文件类型为“*.txt”,要监控的事件类型为文件创建和删除,以及启用事件处理。当文件被创建或删除时,事件处理程序将输出相应的消息。
综上所述,要使用FileSystemWatcher类监控文件夹和文件的变化,需要创建FileSystemWatcher对象、设置监控选项、处理事件。可以使用Changed、Created、Deleted和Renamed事件处理程序来处理相应的事件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# FileSystemWatcher 在监控文件夹和文件时的使用方法 - Python技术站