■66395 / ) |
Re[2]: 複数のフォルダ・ファイルの変更を監視したい |
□投稿者/ YY (2回)-(2013/04/19(Fri) 16:24:44)
|
太郎冠者 様 ご回答どうもありがとうございます。
> FileSystemWatcher自体には複数のルートフォルダの監視機能は無かったと思います。 > なので、監視したいルートフォルダの数だけFileSystemWatcherのインスタンスを用意する必要があります。
下記のように変更してみたが、下記のエラーが出て上手くインスタンスの設定ができない。
サンプルコード -------ここから----------------------------- 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
dim array(1) as string array(0) = "E:\" array(1) = "H:\"
dim i as integer
for i = 0 to 1
watcher(i) = New System.IO.FileSystemWatcher '←この行でエラー
'NullReferenceExceptionはハンドルされませんでした。 オブジェクト参照がオブジェクトインスタンスに設定されていません。
'監視するディレクトリを指定 watcher(i).Path = array(i) '最終アクセス日時、最終更新日時、ファイル、フォルダ名の変更を監視する watcher(i).NotifyFilter = System.IO.NotifyFilters.LastAccess Or _ System.IO.NotifyFilters.LastWrite Or _ System.IO.NotifyFilters.FileName Or _ System.IO.NotifyFilters.DirectoryName 'すべてのファイルを監視 watcher(i).Filter = "" 'UIのスレッドにマーシャリングする 'コンソールアプリケーションでの使用では必要ない 'watcher.SynchronizingObject = Me
'イベントハンドラの追加 AddHandler watcher(i).Changed, AddressOf watcher_Changed AddHandler watcher(i).Created, AddressOf watcher_Changed AddHandler watcher(i).Deleted, AddressOf watcher_Changed AddHandler watcher(i).Renamed, AddressOf watcher_Renamed
'監視を開始する watcher.EnableRaisingEvents = True Console.WriteLine("監視を開始しました。")
next
End Sub
|
|