Wenn ich einen fileWatcher benutze, und ich in das zu überwachende directory dateien hinein kopieren (pro file 22 mb), habe ich ein problem.
Methods werden absofort ausgeführt und auf die files angewendet.
nur muss ich checken das erst wenn der kopiervorgang fertig ist, erst dann der nachfolgenden code ausgeführt wird, bekomme sonst immer ein exception.
kann mir eine von euch helfen bzw. eine weg aufzeigen ?
vorab dankeeee..
gruß,
elron
vielleicht:
wenn der event ausgelöst wird: filegröße auslesen bestimmten zeitraum warten (1 sekunde z. bsp.) filegröße nochmal auslesen -> wenn gleich: file wird nicht mehr verändert
oder
schreibzugriff probieren, und aus der exception schließen, dass das file blockiert ist, also z. bsp. gerade erst erstellt wird.
beides ungetestet und nur so spontane einfälle
jo das wäre ein ansatz ...
ist zwar unsauber ^^ .. aber wenn es erstmal nicht anders geht.
ich check das mal aus gebe dann bescheid ob es so hingehauen hat.
danke dir,
elron
Hallo elron,
siehe ergänzend auch hier:
FileSystemWatcher (Change-Event wird immer zwei mal hintereinander aufgerufen, wieso?)
Ich habe es damals so gelöst, dass ich mir eine Liste aufgebaut hab, die nach und nach probiert, ob entsprechende Dateien exklusiv geöffnet werden können. Wenn ja, dann wird es aus der Liste entfernt und ein eigenes Event geworfen. Wenn nein, dann bleibt es in der Liste und ein Zähler wird hochgesetzt.
Den Zähler kann man dafür nutzen, dass man bei einer bestimmten Anzahl an versuchen er eine Fehlermeldung bringt.
Das habe ich damals alles lauffähig hinbekommen, kann Dir aber keinen Quellcode mehr geben (alter Arbeitgeber).
Grüße
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”