Hallo zusammen,
kurz zu meiner Anwendung. Ich bekomme per FTP einmal pro Tag ein .zip file auf meinen PC kopiert. Ich habe bereits ein C# Tool, dass die Auswertung dieser Daten übernimmt. Leider muss ich das .zip Archiv immer händisch mit dem Tool öffnen.
Zur Automatisierung habe ich einen Filewatcher eingerichtet, der erkennt, wenn eine neue Datei hinzugefügt wurde und automatisch die Analyse übernimmt.
Das Problem ist jetzt, dass der Filewatcher schon reagiert, obwohl das zip Archiv noch gar nicht komplett kopiert wurde. Momentan habe ich hierzu keine schöne lösung.
//if (!FileIsReady(e.FullPath))
//Wait for File is completely transfered
Thread.Sleep(500);
könnt ihr mir Tipps geben, wie ich das Problem ohne eine Sleep hin bekomme? Das funktioniert zwar, aber ist keine schöne Lösung.
Bin für Vorschläge und Tipps offen
Dominik
Schau dir mal die Antworten in C# FileSystemWatcher, How to know file copied completely into the watch folder an.
Es gibt technisch keine zuverlässige Methode, dies zu erkennen.
Der Tipp, dass man schauen soll, ob das File gelockt ist; das funktioniert auch nicht immer. Nicht immer locken Tools die Files.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code