bitstash
Goto Top

Dateiüberwachung - vb.Net - IO.FileSystemWatcher

Hallo zusammen,

mit Hilfe des IO.FileSystemWatcher lassen sich ja auch auf Netzlaufwerken super bestimmte Vorgänge überwachen (Erstellung, Löschung, Änderung von Dateien und Ordnern).
Speziell bei der Löschung kann man sich über System.IO.FileSystemEventArgs die Datei/das Verzeichnis ausgeben lassen, welche(s) gelöscht wurde. Bei einer Änderung jedoch bekomme ich lediglich das Ergebnis einer Änderung von System.IO.FileSystemEventArgs zurück. Hier ein kleines Beispiel:

Private WithEvents WatchFS As IO.FileSystemWatcher

        WatchFS = New IO.FileSystemWatcher("X:\")  
        WatchFS.EnableRaisingEvents = True
        WatchFS.IncludeSubdirectories = True
        WatchFS.InternalBufferSize = 4096 * 16
        CheckForIllegalCrossThreadCalls = False

Private Sub WatchFS_Deleted(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles WatchFS.Deleted
msgbox(e.fullpath)
End Sub

gibt mir die gelöschte Datei bzw. den gelöschten Ordner als MsgBox aus. Bei der Änderung jedoch:

Private Sub WatchFS_Renamed(ByVal sender As Object, ByVal e As System.IO.RenamedEventArgs) Handles WatchFS.Renamed
msgbox(e.fullpath)
End Sub

oder 

Private Sub WatchFS_Changed(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles WatchFS.Changed
msgbox(e.fullpath)
End Sub

bekomme ich nur das Ergebnis nach der Änderung ausgegeben. Dateiänderung aaa.txt in bbb.txt ... Ergebnis bbb.txt. Da ich aber gern wissen möchte wie die Datei im Urzustand hieß, bringt mir das rein gar nichts. Bei einer Löschung verhält es sich doch beinahe identisch. Vor dem Löschen > Datei aaa.txt ist da ... nach dem Löschen > Datei aaa.txt ist weg. Hier bekomme ich auch den Ursprungsnamen vor der Löschung präsentiert.

Hat jemand eine Idee wie ich bei einer Änderung oder Umbenennung an den alten Namen einer Datei bzw. eines Ordner dran komme?

MfG

Content-ID: 116003

Url: https://administrator.de/contentid/116003

Ausgedruckt am: 25.11.2024 um 23:11 Uhr

78569
78569 13.05.2009 um 20:40:46 Uhr
Goto Top
Vieleicht bist Du schon selbst drauf gekommen:

Außer ..FullPath gibt es auch e.oldname und e.name (in Rename-Event)
bitstash
bitstash 14.05.2009 um 08:43:31 Uhr
Goto Top
Hallo horstfh,

da hast du mich ja auf was gebracht. Ich hab tatsächlich nur in den anderen Events geschaut und gar nicht mehr im Rename-Event geschaut, ob es dort mehr Funktionen gibt. Danke für den Tipp

MfG