講述VB.NET使用FileSystemWatcher
學習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
【編輯推薦】