C# FileSystemWatcher bekommt nicht alle Events mit

mfuesslin

Ensign
Registriert
Juni 2007
Beiträge
149
Hallo,

ich versuche in C# ein kleines Synchronisierungstool zu basteln.
Eine Funktion besteht darin, ein Verzeichnis mittels der FileSystemWatcher Klasse zu überwachen und bei einer eintretenden Veränderung die Datei auf den Client zu übertragen.

In der Theorie funktionierts ganz gut, allerdings bekommt der FileSystemWatcher nicht alle Events mit. Wenn ich beispielsweise 50 Dateien in das überwachte Verzeichnis kopiere, kommen lediglich 10 oder so beim Client an.
Ich hab dann schon mal gegoogled: Anscheinend liegt das an der Eigenschaft "InternalBufferSize", die auf maximal 64kb begrenzt ist.

Hat jemand eine Alternative zu der Klass FileSystemWatcher, die das zuverlässiger erledigt?
Mein Verzeichnis hat 72.086 Dateien, 10.334 Ordner, d. h. da gibts einiges zum überwachen.

Bin für Tipps dankbar :)
mfuesslin
 
Gibts denn überhaupt unter Windows die Möglichkeit ein externen Programm zu schreiben, was Ordner Überwacht und Änderungen mitbekommt, ohne immer den kompletten Inhalt absuchen zu müssen?
Ich dachte das geht nur Betriebssystemintern wie bei der Systemwiederherstellung und Timemachine auf Apple.
Unter Linux gibts fuse womit man sowas "leicht" realisieren kann. Da könnte man zB bei jedem Aufruf zum angelegen einer Datei (mknod) oder dem release beliebigen C-Code ergänzen der zusätzlich ausgeführt wird.
Zb ein Backup-copy.. oder einen Vermerk, dass mit der entsprechenden Datei etwas zu tun ist.
 
Lies dich mal in Robocopy ein. Das ist ein ziemlich mächtiges Tool, das so ziemlich alles in dem Bereich kann.
 
Anstelle von Robocopy würde ich XXCOPY entfehlen. Hat den Vorteil dass es sich nicht verrennt wenn Junction Points verwendet worden sind zur sortierung wie in meinem Fall.

Robocopy kopiert dann die Dateien X mal anstelle die Datei nur 1x zu kopieren und neue Junction Points zu erstellen.
 
Also dieses Beispiel schafft bei mir locker 700 Dateien in Unterordnern. (Mehr habe ich nicht versucht)
 
Zuletzt bearbeitet:

Ähnliche Themen

Antworten
5
Aufrufe
1.773
Zurück
Oben