摘要
侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。
正文
属性
|
CanRaiseEvents |
获取一个指示组件是否可以引发事件的值。<br><br>(继承自 Component) |
|
EnableRaisingEvents |
获取或设置一个值,该值指示是否启用此组件。 |
|
Events |
获取附加到此 Component 的事件处理程序的列表。<br><br>(继承自 Component) |
|
Filter |
获取或设置用于确定在目录中监视哪些文件的筛选器字符串。 |
|
Filters |
获取用于确定在目录中监视哪些文件的所有筛选器的集合。 |
|
IncludeSubdirectories |
获取或设置一个值,该值指示是否应监视指定路径中的子目录。 |
|
InternalBufferSize |
获取或设置内部缓冲区的大小(以字节为单位)。 |
|
NotifyFilter |
获取或设置要监视的更改的类型。 |
|
Path |
获取或设置要监视的目录的路径。 |
|
Site |
获取或设置 ISite 的 FileSystemWatcher。 |
|
SynchronizingObject |
获取或设置用于封送因目录更改而发出的事件处理程序调用的对象。 |
FileSystemWatcher 用于监视运行时指定的目录。 该组件设置为监视 LastWrite 目录中文本文件的创建、删除或重命名更改的时间 LastAccess 和时间。 如果文件已更改、创建或删除,则文件的路径将填入ListBox。 重命名文件时,旧路径和新路径将将填入ListBox。

namespace s66
{
public partial class Form1 : Form
{
FileSystemWatcher watcher;
public Form1()
{
InitializeComponent();
watcher = new FileSystemWatcher();
watcher.Path = @"d:\bz";
watcher.NotifyFilter = NotifyFilters.Attributes
| NotifyFilters.CreationTime
| NotifyFilters.DirectoryName
| NotifyFilters.FileName
| NotifyFilters.LastAccess
| NotifyFilters.LastWrite
| NotifyFilters.Security
| NotifyFilters.Size;
watcher.Created += Watcher_Created;
watcher.Deleted += Watcher_Deleted;
watcher.Renamed += Watcher_Renamed;
watcher.Changed += Watcher_Changed;
watcher.EnableRaisingEvents = true;
}
private void Watcher_Renamed(object sender, RenamedEventArgs e)
{
this.Invoke(() =>
{
lstWatch.Items.Add(e.FullPath + " " + "RENAME");
});
}
private void Watcher_Deleted(object sender, FileSystemEventArgs e)
{
this.Invoke(() =>
{
lstWatch.Items.Add(e.FullPath + " " + "DELETE");
});
}
private void Watcher_Created(object sender, FileSystemEventArgs e)
{
this.Invoke(() =>
{
lstWatch.Items.Add(e.FullPath + " " + "ADD");
});
}
private void Watcher_Changed(object sender, FileSystemEventArgs e)
{
this.Invoke(() =>
{
lstWatch.Items.Add(e.FullPath + " " + "CHANGE");
});
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
用于 FileSystemWatcher 监视指定目录中的更改。 可以监视指定目录的文件和子目录中的更改。 可以创建组件来监视本地计算机、网络驱动器或远程计算机上的文件。
若要监视所有文件中的更改,请将 Filter 属性设置为空字符串 (“”) 或使用通配符 (“”。) 。 若要监视特定文件,请将 Filter 属性设置为文件名。
例如,若要监视文件MyDoc.txt中的更改,请将 Filter 属性设置为“MyDoc.txt”。
还可以监视特定类型的文件中的更改。 例如,若要监视文本文件中的更改,请将 Filter 属性设置为“*.txt”。