如何:创建文件系统事件的处理程序
更新:2007 年 11 月
FileSystemWatcher 组件根据所监视的目录中发生的更改类型引发四种事件。这些事件是:
Created - 只要创建目录或文件即引发。
Deleted - 只要删除目录或文件即引发。
Renamed - 只要更改目录或文件的名称即引发。
Changed - 只要更改目录或文件的大小、系统属性、上次写入时间、上次访问时间或 NTFS 安全权限即引发。
说明: 可以使用 NotifyFilter 属性限制 Changed 事件引发的事件数。有关更多信息,请参见 如何:配置 FileSystemWatcher 组件实例。
对于每一种事件都可以定义处理程序,以便在更改发生时自动调用代码中的方法。事件处理程序是绑定到组件、窗体或控件的事件上的方法。每个事件处理程序都提供了两个用于正确处理事件的参数:sender 和 e,前者提供负责事件的对象的对象引用,后者提供用于表示事件及其信息的对象。
为 FileSystemWatcher 组件的实例创建事件处理程序的方法有多种,但最简单的方法是让 Visual Studio 自动为您创建大部分代码。当在设计器中双击 FileSystemWatcher 组件实例时,Visual Studio 会打开“代码编辑器”,并为 Changed 事件和它调用的空过程各创建一个事件处理程序。然后就可以填入希望在该过程中发生的处理。此外,您还可以创建自己的处理程序来处理其他事件。
有关事件处理程序的更多信息,请参见处理和引发事件。
为 Changed 事件创建默认处理程序
创建 FileSystemWatcher 组件的实例。有关更多信息,请参见 如何:创建 FileSystemWatcher 组件实例。
为组件设置必要的属性。有关更多信息,请参见如何:配置 FileSystemWatcher 组件实例。
在设计器中,双击要创建处理程序的 FileSystemWatcher 组件。
说明: 此时,将显示“代码编辑器”,同时在代码中添加两项:一项是创建和注册委托并调用过程的处理程序,另一项是 Changed 事件的空过程。
在 Changed 事件的空过程中,定义当调用此事件时采取操作的代码。
创建 FileSystemWatcher 事件的处理程序
创建 FileSystemWatcher 组件的实例。有关更多信息,请参见 如何:创建 FileSystemWatcher 组件实例。
为组件设置必要的属性。有关更多信息,请参见 如何:配置 FileSystemWatcher 组件实例。
创建将被调用的适当过程,并定义要用于处理项的代码。下面的示例演示 Changed 事件的事件处理程序。
Private Sub myWatcher_Changed(ByVal sender As System.Object, _ ByVal e As System.IO.FileSystemEventArgs) Dim pathChanged As String pathChanged = e.FullPath End Sub
private void myWatcher_Changed(object sender, System.IO.FileSystemEventArgs e) { string pathChanged = e.FullPath; }
为组件的事件分配 FileSystemEventHandler 实例。此示例添加步骤 3 中定义的 Changed 事件处理程序。
AddHandler myWatcher.Changed, _ New System.IO.FileSystemEventHandler(AddressOf Me.myWatcher_Changed)
myWatcher.Changed += new System.IO.FileSystemEventHandler(this.myWatcher_Changed);