学习VB.NET时,你可能会遇到VB.NET使用FileSystemWatcher问题,这里将介绍VB.NET使用FileSystemWatcher问题的解决方法,在这里拿出来和大家分享一下。
VB.NET使用FileSystemWatcher
侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。VB.NET使用FileSystemWatcher 监视指定目录中的更改。可监视指定目录中的文件或子目录的更改。该组件可以监视本地计算机、网络驱动器或远程计算机上的文件。(当然只读的媒体介质比如cd和dvd,它们文件的属性不会改变,所以也就不能触发事件)
若要监视所有文件中的更改,请将 Filter 属性设置为空字符串 ("")。若要监视特定的文件,请将 Filter 属性设置为该文件名。例如,若要监视文件 MyDoc.txt 中的更改,请将 Filter 属性设置为“MyDoc.txt”。也可以监视特定类型文件中的更改。例如,若要监视文本文件中的更改,请将 Filter 属性设置为“*.txt”。
可监视目录或文件中的若干种更改。例如,可监视文件或目录的 Attributes、LastWrite 日期和时间或 Size 方面的更改。通过将VB.NET使用FileSystemWatcher.NotifyFilter 属性设置为 NotifyFilters 值之一来达到此目的。
可监视文件或目录的重命名、删除或创建。例如,若要监视文本文件的重命名,请将 Filter 属性设置为“*.txt”,并调用 WaitForChanged 方法之一,调用时给出 WatcherChangeTypes 值的 Renamed。
新建一个project,选择windows 服务类型,命名为WinServiceFileWatching,我们看到project的引用中自动添加了System.ServiceProcess 名空间(这就是创建一个服务的函数集)。从工具中的组件中选择FileSystemWatcher1,拖放到service1的设计模式上.
然后添加以下代码:
- Protected Overrides Sub OnStart(ByVal args() As String)
- ' 在此处添加启动服务的代码。此方法应设置具体的操作
- ' 以便服务可以执行它的工作。
- FileSystemWatcher1.EnableRaisingEvents = True
- ' 我们也可以根据输入的参数args动态设定要监视的对象
- 'FileSystemWatcher1.path= args(0)
- End Sub
- ' 创建文件(夹)时候触发,记录创建信息到e:\log.txt中
- Private Sub FileSystemWatcher1_Created(ByVal sender As Object,
ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Created- Dim fs As New FileStream("e:\log.txt", FileMode.Append)
- Dim sw As New StreamWriter(fs)
- sw.WriteLine(Now() & Microsoft.VisualBasic.vbTab & "创建" & e.FullPath)
- sw.Close()
- fs.Close()
- End Sub
【编辑推荐】