FileSystemWatcher 类
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8
命名空间:System.IO
程序集:System.dll
侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。
注解
使用 FileSystemWatcher 来监视指定目录中的更改。 可以监视指定目录的文件和子目录中的更改。 你可以创建一个组件来监视本地计算机、网络驱动器或远程计算机上的文件。
若要监视所有文件中的更改,请将 Filter 属性设置为空字符串("")或使用通配符("*。*")。 若要查看特定文件,请将 Filter 属性设置为文件名。 例如,若要监视文件 MyDoc 中的更改,请将 Filter 属性设置为 "MyDoc"。 还可以监视特定类型的文件中的更改。 例如,若要监视文本文件中的更改,请将 Filter 属性设置为 "*.txt"。
事件
Changed | 当更改指定 Path 中的文件和目录时发生。 |
Created | 当在指定 Path 中创建文件和目录时发生。 |
Deleted | 删除指定 Path 中的文件或目录时发生。 |
Disposed | 在通过调用 Dispose() 方法释放组件时发生。 (继承自 Component) |
Error | 当 FileSystemWatcher 的实例无法继续监视更改或内部缓冲区溢出时发生。 |
Renamed | 重命名指定 Path 中的文件或目录时发生。 |
属性
EnableRaisingEvents | 获取或设置一个值,该值指示是否启用此组件。 |
Filter | 获取或设置用于确定在目录中监视哪些文件的筛选器字符串。 |
IncludeSubdirectories | 获取或设置一个值,该值指示是否应监视指定路径中的子目录。 |
NotifyFilter | 获取或设置要监视的更改的类型。 |
Path | 获取或设置要监视的目录的路径。 |
Module Module1
Dim WithEvents FWatcher As New IO.FileSystemWatcher
Dim flag As Boolean = True
Sub Main()
testFileSystemWatcher()
End Sub
Private Sub testFileSystemWatcher()
FWatcher.Path = "f:\test\"
FWatcher.Filter = "*.*"
FWatcher.IncludeSubdirectories = True
FWatcher.NotifyFilter = IO.NotifyFilters.LastWrite
FWatcher.EnableRaisingEvents = True
While flag
End While
End Sub
Public Sub FWatcher_Change(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles FWatcher.Changed, FWatcher.Created, FWatcher.Deleted
MsgBox(e.FullPath & e.Name & e.ChangeType)
'flag = False
End Sub
End Module
本例创建了一个文件系统观察对象FWatcher,通过这个对象的属性设置,确定该对象监测目录F:\test。监测范围包括子目录。监测活动为改写,监测文件类型为任意文件类型。本例定义了一个事件处理程序,三个句柄。但是,由于FWatcher属性设置中,NotifyFilter设置为监测上一次写入。因此,只对写入事件进行监测,而不会监测文件或目录的创建。本例代码运行时,当手动
在F:\test目录中创建一个TXT文件后,将弹出一个消息框。