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-Key: 116003

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

Printed on: April 28, 2024 at 10:04 o'clock

Mitglied: 78569
78569 May 13, 2009 at 18:40:46 (UTC)
Goto Top
Vieleicht bist Du schon selbst drauf gekommen:

Außer ..FullPath gibt es auch e.oldname und e.name (in Rename-Event)
Member: bitstash
bitstash May 14, 2009 at 06:43:31 (UTC)
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