Hallo,
ich haben folgendes Problem: Ich habe ein kleines Programm geschrieben, dass per FileSystemWatcher ein Directory überwacht. Sobald eine Datei/Order in dem Directory dazukommt, soll dieses rekursiv kopiert/verschoben werden.
Leider kommt das Event des FileSystemWatcher sobald ein File/Ordner neu angelegt wird. Wenn ich dann versuche das File/den Ordner zu kopieren knallts, weil das Object in use ist.
Bei einzelne Files kann ich das umgehen indem ich die Exception catche, warte und es dann nochmal versuche, bis das File komplett vorliegt.
Sobald aber ein Order mit Unterordnern und Files angelegt wird, kann ich nicht checken, ob der Ordner noch in Benutzung ist.
Gibt es eine Möglichkeit rekursiv ein Verzeichnis zu checken, bevor ich es kopiere/verschiebe?
(Ich benutze DotNet 2.0)
Danke schonmal im voeraus!
Hallo ILM,
das Thema hatte wir schon ein paar mal. Forumssuche nach FileSystemWatcher sollte reichen.
herbivore
Hi herbivore,
leider nicht ganz, hab das Forum durchsucht, aber es geht meistens darum eine Datei zu kopieren/verschieben.
Ich möchte ein Verzeichnis mit samt Unterverzeichnissen und Dateien kopieren, und muss deshalb vor dem kopieren/verschieben wissen, ob der gesamte Verzeichnisbaum komplett vorliegt. Wie krieg ich das hin?
Falls ich mich irre und das Thema wirklich schonmal diskutiert wurde, wäre ein Link toll.
Gruß ILM
Hallo ILM,
ob der gesamte Verzeichnisbaum vorliegt, kannst du m.E. nur anwendungsspezifisch testen. Ich denke nicht, dass der FileSystemWatcher da eine Unterstützung für bringt. Woher soll man im Allgemeinen wissen, ob der Verzeichnisbaum komplett ist? Für den Test einzelner Dateien in dem gesamten Baum gilt dann wieder das für einzelene Dateien gesagte.
herbivore
Wie du es für einzelen Files machst weißt du doch schon. Genauso machst es für ganze Ordnerstrukturen, nur dass du dort halt jedes File überwachen musst, was natürlich bissle mehrarbeit ist.
Baka wa shinanakya naoranai.
Mein XING Profil.
Danke!
hab's hinbekommen.
Der trick war, dass ich nachdem ich alle Dateien in einem Ordner überprüfen muss ob sich die anzahl der Dateien verändert hat.
Und natürlich erst wenn sich die Anzahl der Dateien nicht mehr ändert darf gelöscht werden.