■66389 / inTopicNo.1) |
複数のフォルダ・ファイルの変更を監視したい |
□投稿者/ YY (1回)-(2013/04/19(Fri) 09:09:44)
|
分類:[ASP.NET (VB)]
2013/04/19(Fri) 09:13:02 編集(投稿者)
こんにちは、お世話になります。 表題の件について、早速ご質問させていただきます。 (XPpro + vb.net 2008) 参照URL http://dobon.net/vb/dotnet/file/filesystemwatcher.html 下記のサンプルコードでは、下記の指定パス内のファイルの変更を監視できます。 watcher.Path = "C:\My Documents" 今回は、サンプルコードを利用して、複数のフォルダを監視できるようにしたい。 たとえば下記のフォルダを監視したい場合はサンプルコードをどのように変更すればできるか 。監視したいパス:「C:\」「D:\」「E:\」「F:\」「G:\」 全部で5箇所です。 ご教示のほどよろしくお願いいたします。 サンプルコード -------ここから----------------------------- Private watcher As System.IO.FileSystemWatcher = Nothing 'Button1のClickイベントハンドラ Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.Click If Not (watcher Is Nothing) Then Return End If watcher = New System.IO.FileSystemWatcher '監視するディレクトリを指定 watcher.Path = "C:\My Documents" '最終アクセス日時、最終更新日時、ファイル、フォルダ名の変更を監視する watcher.NotifyFilter = System.IO.NotifyFilters.LastAccess Or _ System.IO.NotifyFilters.LastWrite Or _ System.IO.NotifyFilters.FileName Or _ System.IO.NotifyFilters.DirectoryName 'すべてのファイルを監視 watcher.Filter = "" 'UIのスレッドにマーシャリングする 'コンソールアプリケーションでの使用では必要ない watcher.SynchronizingObject = Me 'イベントハンドラの追加 AddHandler watcher.Changed, AddressOf watcher_Changed AddHandler watcher.Created, AddressOf watcher_Changed AddHandler watcher.Deleted, AddressOf watcher_Changed AddHandler watcher.Renamed, AddressOf watcher_Renamed '監視を開始する watcher.EnableRaisingEvents = True Console.WriteLine("監視を開始しました。") End Sub 'Button2のClickイベントハンドラ Private Sub Button2_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button2.Click '監視を終了 watcher.EnableRaisingEvents = False watcher.Dispose() watcher = Nothing Console.WriteLine("監視を終了しました。") End Sub 'イベントハンドラ Private Sub watcher_Changed(ByVal source As System.Object, _ ByVal e As System.IO.FileSystemEventArgs) Select Case e.ChangeType Case System.IO.WatcherChangeTypes.Changed Console.WriteLine(("ファイル 「" + e.FullPath + _ "」が変更されました。")) Case System.IO.WatcherChangeTypes.Created Console.WriteLine(("ファイル 「" + e.FullPath + _ "」が作成されました。")) Case System.IO.WatcherChangeTypes.Deleted Console.WriteLine(("ファイル 「" + e.FullPath + _ "」が削除されました。")) End Select End Sub Private Sub watcher_Renamed(ByVal source As System.Object, _ ByVal e As System.IO.RenamedEventArgs) Console.WriteLine(("ファイル 「" + e.FullPath + _ "」の名前が変更されました。")) End Sub サンプルコード -------ここまで-----------------------------
|
|