fsw.Changed += new FileSystemEventHandler(this.fileSystemWatcher_EventHandle);
fsw.Renamed += new RenamedEventHandler(this.fileSystemWatcher_Renamed); //重命名事件与增删改传递的参数不一样。
fsw.EnableRaisingEvents = true; //启动监控
private void fileSystemWatcher_EventHandle(object sender, FileSystemEventArgs e) //文件增删改时被调用的处理方法
{
if (this.listView1.InvokeRequired) //判断是否跨线程
{
this.listView1.Invoke(new setLogTextDelegate(setLogText), new object[] { e }); //使用委托将方法封送到UI主线程处理
}
}
private void fileSystemWatcher_Renamed(object sender,RenamedEventArgs e) //文件重命名时被调用的处理方法
{
if (this.listView1.InvokeRequired) //判断是否跨线程
{
this.listView1.Invoke(new renamedDelegate(setRenamedLogText), new object[] { e }); //使用委托将方法封送到UI主线程处理
}
}
private void setLogText(FileSystemEventArgs e) //更新UI界面
{
ListViewItem lvi = new ListViewItem();
lvi.SubItems.Add(e.Name); //受影响的文件名
lvi.SubItems.Add(e.ChangeType.ToString()); //受影响文件的变动类型(可能为Created、Changed、Deleted)
lvi.SubItems.Add(e.FullPath); //受影响的文件完整路径
this.listView1.Items.Add(lvi);
}
private void setRenamedLogText(RenamedEventArgs e) //更新UI界面
{
ListViewItem lvi = new ListViewItem();
lvi.SubItems.Add(e.OldName); //受影响的文件的原名
lvi.SubItems.Add(e.ChangeType.ToString()); //受影响的文件的改动类型(Rename)
lvi.SubItems.Add(e.Name); //受影响的文件的新名
lvi.SubItems.Add(e.OldFullPath); //受影响的文件的原路径
lvi.SubItems.Add(e.FullPath); //受影响的文件的完整路径(其实和原路径一样)
this.fileEventLog_lvw.Items.Add(lvi);
}
重点:










