C#可以使用FileSystemWatcher类来监控Windows文件夹。FileSystemWatcher类可以监视文件夹中的文件和子文件夹的创建、删除、重命名和修改等操作,并触发相应的事件。本文将提供C#监控Windows文件夹的完整攻略,包括创建FileSystemWatcher对象、设置监控选项、处理事件等。同时,本文还提供两个示例,演示如何使用C#监控Windows文件夹。
创建FileSystemWatcher对象
要使用FileSystemWatcher类监控Windows文件夹,需要创建一个FileSystemWatcher对象。以下是创建FileSystemWatcher对象的示例代码:
FileSystemWatcher watcher = new FileSystemWatcher();
在上面的示例中,我们创建了一个FileSystemWatcher对象,用于监控Windows文件夹。
设置监控选项
要设置FileSystemWatcher对象的监控选项,可以使用以下属性:
- Path:要监控的文件夹路径。
- Filter:要监控的文件类型,可以使用通配符。
- NotifyFilter:要监控的事件类型,包括文件名、目录名、文件大小、最后访问时间、最后写入时间和安全性更改等。
- EnableRaisingEvents:是否启用事件。
以下是设置FileSystemWatcher对象的监控选项的示例代码:
watcher.Path = @"C:\Users\Username\Desktop";
watcher.Filter = "*.txt";
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite;
watcher.EnableRaisingEvents = true;
在上面的示例中,我们设置了FileSystemWatcher对象的监控选项。我们监控了桌面上的.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: " + e.FullPath + " " + e.ChangeType);
}
private static void OnCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}
在上面的示例中,我们处理了FileSystemWatcher对象的Changed、Created、Deleted和Renamed事件。当文件或目录发生更改、被创建、被删除或被重命名时,将触发相应的事件,并执行相应的事件处理程序。
示例一:监控文件夹中的文件
以下是使用C#监控文件夹中的文件的示例代码:
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\Users\Username\Desktop";
watcher.Filter = "*.txt";
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite;
watcher.EnableRaisingEvents = true;
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: " + e.FullPath + " " + e.ChangeType);
}
private static void OnCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}
在上面的示例中,我们创建了一个FileSystemWatcher对象,用于监控桌面上的.txt文件。当文件名或最后写入时间发生变化时,将触发事件,并执行相应的事件处理程序。
示例二:监控文件夹中的子文件夹
以下是使用C#监控文件夹中的子文件夹的示例代码:
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\Users\Username\Desktop";
watcher.Filter = "*.*";
watcher.IncludeSubdirectories = true;
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite;
watcher.EnableRaisingEvents = true;
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: " + e.FullPath + " " + e.ChangeType);
}
private static void OnCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}
在上面的示例中,我们创建了一个FileSystemWatcher对象,用于监控桌面上的所有文件和子文件夹。当文件名或最后写入时间发生变化时,将触发事件,并执行相应的事件处理程序。
综上所述,要使用C#监控Windows文件夹,可以使用FileSystemWatcher类。可以创建FileSystemWatcher对象、设置监控选项和处理事件。可以使用示例代码更好地理解如何使用C#监控Windows文件夹。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 监控 Windows 文件夹的方法 - Python技术站