※ ChatGPTを利用し、要約された質問です(原文:ファイルを開いたことを検知したい)
ファイルを検知する方法
ファイルを開いたことを検知したいのですが、うまく出来ません。
http://dobon.net/vb/dotnet/file/filesystemwatcher.html
を参考に若干編集してみたのですが・・・どうしたらうまく検知してくれるのでしょうか?
ファイルが開かれたかどうかは最終アクセス日時の変更があったかどうかで判断します
Dim watcher As New System.IO.FileSystemWatcher
watcher.Path = "C:\My Documents"
watcher.Filter = "*"
watcher.NotifyFilter = System.IO.NotifyFilters.FileName Or _
System.IO.NotifyFilters.DirectoryName Or _
System.IO.NotifyFilters.LastWrite Or _
System.IO.NotifyFilters.LastAccess
watcher.IncludeSubdirectories = False
Dim changedResult As System.IO.WaitForChangedResult = _
watcher.WaitForChanged(System.IO.WatcherChangeTypes.All)
※ファイルを開いてもここから進んでくれない
If changedResult.TimedOut Then
Console.WriteLine("タイムアウトしました。")
Return
End If
Select Case changedResult.ChangeType
Case System.IO.WatcherChangeTypes.Changed
Console.WriteLine(("ファイル 「" + _
changedResult.Name + "」が変更されました。"))
Case System.IO.WatcherChangeTypes.Created
Console.WriteLine(("ファイル 「" + _
changedResult.Name + "」が作成されました。"))
Case System.IO.WatcherChangeTypes.Deleted
Console.WriteLine(("ファイル 「" + _
changedResult.Name + "」が削除されました。"))
Case System.IO.WatcherChangeTypes.Renamed
Console.WriteLine(("ファイル 「" + _
changedResult.OldName + "」の名前が「" + _
changedResult.Name + "」に変更されました。"))
End Select
お礼
なるほど、そういうことだったのですね。 ありがとうございました。