C# 文件监控:实时追踪文件夹和子文件夹变化
以下是一个使用 C# 监控文件夹及其子文件夹文件变化并将结果显示到 TextBox 中的示例代码:
using System;
using System.IO;
using System.Windows.Forms;
namespace FileWatcherExample
{
public partial class Form1 : Form
{
private FileSystemWatcher watcher;
private string folderPath;
public Form1()
{
InitializeComponent();
folderPath = 'C:\Path\To\Folder'; // 替换为要监控的文件夹路径
watcher = new FileSystemWatcher(folderPath);
watcher.IncludeSubdirectories = true; // 监控子文件夹
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite; // 监控文件名和修改时间
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.EnableRaisingEvents = true;
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = '开始监控文件夹:' + folderPath;
}
private void OnChanged(object sender, FileSystemEventArgs e)
{
textBox1.Invoke(new Action(() =>
{
textBox1.AppendText('文件 ' + e.FullPath + ' 发生了变化' + Environment.NewLine);
}));
}
private void OnRenamed(object sender, RenamedEventArgs e)
{
textBox1.Invoke(new Action(() =>
{
textBox1.AppendText('文件 ' + e.OldFullPath + ' 重命名为 ' + e.FullPath + Environment.NewLine);
}));
}
}
}
要使用此示例代码,您需要创建一个 Windows 窗体应用程序,并将一个 TextBox 控件添加到窗体上,并将其命名为 textBox1。然后,将上述代码复制到 Form1.cs 文件中,并将 folderPath 变量替换为您要监控的文件夹路径。
在窗体加载时,将在 textBox1 中显示消息,指示已开始监控文件夹。
当文件夹中的文件发生更改时,将在 textBox1 中显示相应的消息。
注意:在实际使用中,您可能需要根据需要进行错误处理和其他逻辑。此示例仅提供基本的监控和消息显示功能。
原文地址: https://www.cveoy.top/t/topic/bsa2 著作权归作者所有。请勿转载和采集!