FileSystemWatcher.WaitForChanged

09/11/2009 - 16:53 von Lorenz Ingold | Report spam
Ich benutze den FileSystemWatcher von .NET 2.0. Die WaitForChanged-Methode
bringe ich leider nicht zum Funktionieren. Ich kann machen was ich will, es
passiert einfach überhaupt nie etwas, und ich kann nicht einsehen warum.
Mein Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
fsWatchLastWrite.Path = "C:\Test"
fsWatchLastWrite.Filter = "*.*"
fsWatchLastWrite.NotifyFilter = IO.NotifyFilters.LastWrite
DoWait(fsWatchLastWrite)
End Sub
Private Sub DoWait(ByVal objWatcher As System.IO.FileSystemWatcher)
Dim objResult As System.IO.WaitForChangedResult
Me.TextBox1.AppendText("vor Aufruf von WaitForChanged")
objResult = objWatcher.WaitForChanged(IO.WatcherChangeTypes.All)
Me.TextBox1.AppendText("nach Aufruf von WaitForChanged, Resultat: " &
objResult.ChangeType.ToString)
End Sub
Ich habe auch mit anderen Filtern probiert und dann jeweils verschiedene
Fileaktionen gemacht: txt-File bearbeiten/speichern/schliessen und dasselbe
mit einem doc-File. In der Textbox erscheint immer nur der erste der beiden
Texte ("vor Aufruf."). WaitForChanged sollte ja gemàss MSDN zurückgeben
sobald irgendeine Änderung stattgefunden hat und dann sollte eben der zweite
Text in der Textbox erscheinen. Was mache ich falsch?
 

Lesen sie die antworten

#1 Peter Götz
10/11/2009 - 07:46 | Warnen spam
Hallo Lorenz,

Ich benutze den FileSystemWatcher von .NET 2.0. Die WaitForChanged-Methode
bringe ich leider nicht zum Funktionieren. Ich kann machen was ich will,
es passiert einfach überhaupt nie etwas, und ich kann nicht einsehen
warum.



Schau Dir mal

www.gssg.de -> Visual Basic -> VB.net
-> System / Netzwerk
-> File System Watcher

an.
Damit können ganze Laufwerke, Verzeichnisse mit oder
ohne Unterverzeichnisse (CheckBox "Include SubDirectories"),
sowie einzelne Dateien überwacht werden.
Was überwacht (Ändern, Erstellen, Löschen, Umbenennen von
Dateien) und protokolliert wird, kann über die Checkboxen in
der GroupBox "Notify Filter" festgelegt werden.

Schau mal, ob Dir das weiterhilft.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen