События FileSystemWatcher - C#
Формулировка задачи:
Хочу отследить изменение файла. Создаю FileSystemWatcher
Если отслеживаемый файл сохраняется, OnChanged почему-то выполняется три раза, как сделать, чтоб только один?
Могу ли я передавать параметры через OnChanged?
FileSystemWatcher watcher = new FileSystemWatcher(); watcher.NotifyFilter = NotifyFilters.LastWrite; watcher.Changed += new FileSystemEventHandler(OnChanged);
Решение задачи: «События FileSystemWatcher»
textual
Листинг программы
Imports System.IO, System.Diagnostics
Module Module1
Sub Main()
Try
Dim Watcher As New FileSystemWatcher(pathUserFolder)
Dim instance As System.Threading.ManualResetEvent = New System.Threading.ManualResetEvent(False)
' Add delegates for events
AddHandler Watcher.Created, New FileSystemEventHandler(AddressOf Watcher_Created)
AddHandler Watcher.Changed, New FileSystemEventHandler(AddressOf Watcher_Changed)
AddHandler Watcher.Deleted, New FileSystemEventHandler(AddressOf Watcher_Deleted)
AddHandler Watcher.Renamed, New RenamedEventHandler(AddressOf Watcher_Renamed)
' Must do this
Watcher.EnableRaisingEvents = True
instance.WaitOne(True)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Watcher_Changed(ByVal sender As Object, ByVal e As FileSystemEventArgs)
' Console.WriteLine("Event: File {0} {1}", e.FullPath, e.ChangeType)
End Sub
Private Sub Watcher_Deleted(ByVal sender As Object, ByVal e As FileSystemEventArgs)
'Console.WriteLine("Event: File {0} {1}", e.FullPath, e.ChangeType)
End Sub
Private Sub Watcher_Renamed(ByVal sender As Object, ByVal e As RenamedEventArgs)
'Console.WriteLine("Event: File {0} {1} to {2}", e.OldFullPath, e.ChangeType, e.FullPath)
End Sub
End Module