Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

FileSystemWatcher.WaitForChanged

59 views
Skip to first unread message

Lorenz Ingold

unread,
Nov 9, 2009, 3:53:48 PM11/9/09
to
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?

Peter G�tz

unread,
Nov 10, 2009, 6:46:47 AM11/10/09
to
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)


Lorenz Ingold

unread,
Nov 11, 2009, 1:23:07 PM11/11/09
to
Leider hilft das nicht weiter. Da muss ich weitere Erkl�rungen liefern. Was
ich br�uchte, sind Events nicht nur von einem "nat�rlichen" Filesystem,
sondern von einem WebDAV, der von SharePoint Services kommt. Die
Vorgehensweise mit EnableRaisingEvents und Watcherevents funktionierte dort
�berhaupt nicht (in einem "nat�rlichen" Filesystem jedoch schon; das heisst,
so weit wie Dein Beispiel bin ich eigentlich bereits). Daher dachte ich, ich
probiers mal mit der Alternative, n�mlich dem WaitForChanged-Aufruf, wobei
man EnableRaisingEvents nicht setzen muss. Aber das klappt nun auch im
nat�rlichen Filesystem nicht, gem�ss meinem vorangehenden Newsbeitrag. Es
scheint so zu sein, dass von WebDAV �berhaupt keine Events greifbar sind.
Das w�re meine n�chste Frage: Gibt es tats�chlich keine Events, oder wenn
doch, wie kann man sie bekommen? (Anmerkung: ich habe bisher keine Newsgroup
�ber SharePoint gefunden, die gen�gend interdisziplin�r ist, so dass dort
auch .NET-Programmierprobleme besprochen werden k�nnten).


"Peter G�tz" <gssg_...@gssg.de> schrieb im Newsbeitrag
news:%23ybSVGd...@TK2MSFTNGP04.phx.gbl...

Sam

unread,
Nov 12, 2009, 9:19:14 PM11/12/09
to
Vielleicht hilft dir ein Timer der einen Hash, eine Groesse oder
File.GetLastWriteTime prueft. Wird sich aber im vergleich zum Event
wohl negativ auf die Performance auswirken.

>Es scheint so zu sein, dass von WebDAV überhaupt keine Events greifbar sind.
>Das wäre meine nächste Frage: Gibt es tatsächlich keine Events, oder wenn


>doch, wie kann man sie bekommen? (Anmerkung: ich habe bisher keine Newsgroup

>über SharePoint gefunden, die genügend interdisziplinär ist, so dass dort
>auch .NET-Programmierprobleme besprochen werden könnten).

Schon mal nach C# Beispielen gesucht, meist lassen sich diese in VB
uebertragen

0 new messages