FileSYstemWatcher控件是用来监控一个文件系统或监控文件变化。该控件会通知文件创建、修改、删除的消息,分别通过Created事件、Changed事件和Deleted事件来处理对应的操作
FIleSystemWatcher常用事件
Created 当指定Path中创建文件和目录时发生
Changed 当更改Path中的文件和目录时发生,变更目录或档案的大小
、系统属性、上次写入时间、上次存取时间或安全性权限时引
发。
Deleted 删除指定path中的文件或目录时发生
Renamed 重命名指定path中的文件或目录进时发生
FIleSystemwatcher重用属性
EnableRaisingEvents 获取或设置一个值,该值指示是否启用此组件
Filer 获取或设置筛选字符串,用于确定在目录监视哪些文件
InculdeSubdirectories 获取或设置一个值,该值指示是够监视指定路径中的子 目录
InternalBufferSize 获取或设置内部缓冲的大小
NotifiyFilter 获取或设置要监视的更改类型
Path 获取或设置要监视的目录的路径
SynchronizingObject 获取或设置一个对象,该对象用于调用发送因目录更改 的事件处理程序
NotifyFilter属性枚举值说明
Attributes 文化或文件夹属性
CreationTime 文件或文件夹创建时间
DirectoryName 文件夹名称
FileName 文件名
LastAccess 文件或文件夹上次打开的时间
LastWrite 上一次向文件或文佳夹写入内容的时间
Security 文件或文件夹的安全设置
Size 文件或文件夹的大小
//窗体加载
private void Form1_Load(object sender, EventArgs e)
{
//是否启用此组件
fileSystemWatcher1.EnableRaisingEvents = false;
//获取监控的路径
fileSystemWatcher1.Path = @"C:\Users\Administrator\Desktop\新建文件夹";
//确定监控哪些文件
fileSystemWatcher1.Filter = "*.*";
//是否监控目录下的子目录
fileSystemWatcher1.IncludeSubdirectories = true;
//设置监视操作的类型
fileSystemWatcher1.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.CreationTime | NotifyFilters.FileName | NotifyFilters.Size;
richTextBox1.Text = "";
button1.Text = "启动";
}
//点击按钮
private void button1_Click(object sender, EventArgs e)
{
if (fileSystemWatcher1.EnableRaisingEvents)
{
fileSystemWatcher1.EnableRaisingEvents = false;
button1.Text = "启动"; }
else
{
fileSystemWatcher1.EnableRaisingEvents = true;
button1.Text = "停止";
}
}
//FIlesystemWatcher事件
private void fileSystemWatcher1_Changed(object sender, FileSystemEventArgs e)
{
//也是换行的意思=“\n”
richTextBox1.AppendText(DateTime.Now.ToString()+"更改目录文件"+ Environment.NewLin);
} private void fileSystemWatcher1_Created(object sender, FileSystemEventArgs e)
{
richTextBox1.AppendText(DateTime.Now.ToString() + "创建了文件目录文件" + Environment.NewLin);
} private void fileSystemWatcher1_Deleted(object sender, FileSystemEventArgs e)
{
richTextBox1.AppendText(DateTime.Now.ToString() + "删除了目录文件" + Environment.NewLin);
} private void fileSystemWatcher1_Renamed(object sender, RenamedEventArgs e)
{
richTextBox1.AppendText(DateTime.Now.ToString() + "重命名了目录文件" + Environment.NewLin);
}
}