FileSystemWatcher
~ 은 외부에서 열어 본 텍스트 파일이 수정되었거나 (Notepad ++ 등) 인 경우 내 프로그램에 알리려고합니다. 텍스트 파일이 내 프로그램에서 열렸으며 외부에서 열렸으며 수정 된 경우 프로그램에 알려야합니다.FileSystemWatcher 오류
내가 만든 내 다음 FileSystemWatcher
같이
Public Sub Watch()
Dim watcher As New IO.FileSystemWatcher()
'For watching current directory
watcher.Path = Path.GetDirectoryName(Var.SaveLocation) 'Note how to obtain current directory
watcher.NotifyFilter = NotifyFilters.LastWrite Or NotifyFilters.FileName
watcher.Filter = Path.GetFileName(Var.SaveLocation)
AddHandler watcher.Changed, AddressOf OnChanged
watcher.EnableRaisingEvents = True
End Sub
Private Sub OnChanged(sender As Object, e As FileSystemEventArgs)
MessageBox.Show("Reload")
End Sub
내 프로그램에서 OpenFileDialog를 방법에 Watch()
방법을 추가했습니다. 따라서 새 텍스트 파일을 열 때마다 FileSystemWatcher
이 시작됩니다. 내 문제는 내가 프로그램 내에서 열어 본 텍스트 파일을 저장하면 OnChanged
이벤트가 활성화된다는 것입니다. 텍스트 파일을 외부에서 수정할 때 잘 작동합니다. 그러나 프로그램 내에서 이벤트 트리거가되는 파일을 저장해야하는 방식으로 작동합니다. 나는 내 프로그램에있는 동안 방아쇠를 당길 필요가 없기 때문에 이것을 원하지 않는다.
어떻게하면됩니까? 가능한 예제를 제공하고 있습니까? – Zer0
Changed 이벤트에서 e.FullPath를 사용하여 변경된 파일을 볼 수 있고 e.ChangeType을 사용하여 변경 유형을 알 수 있습니다. e.FullPath가 응용 프로그램에서 저장 한 파일인지 확인하십시오. – xpda