Datei lässt sich nicht löschen
-
Hallo,
ich habe mit BCB 5.0 Pro / Indy 9 ein Programm geschrieben, welches Dateien von der Festplatte auf einen FTP-Server hoch lädt. Nach dem Hochladen müssen die Dateien gelöscht werden.
Das Problem ist, wenn während des Hochladevorgangs die FTP-Verbindung abbricht,
dann bleibt diese Datei geöffnet, und lässt sich nicht mehr löschen. Auch wenn ich versuche die Datei manuell zu löschen, dann kommt Fehlermeldung " Datei wird vom Programm "meinProgramm.exe" verwendet".Weiss jemand wie man die Datei trotzdem löschen könnte?
-
überarbeite dein Design so, dass wenn in deinem Programm ein Fehler auftritt, es nicht abstürtzt, sonder sich sauber beendet.
oder halt die würg-methode.. Task-Manager aufmachen, "meinProgramm.exe" abschiessen und datei von hand löschen
-
Mein Programm stürzt auch nicht ab. Wenn die FTP-Verbindung abbricht, dann setze ich meinen Upload-Thread sauber zurück. Nur die TidFtp-Komponente gibt die Datei nicht frei. Ich glaube das ist ein Bug von Indy.
Trotzdem müsste es doch irgendwie möglich sein, eine geöffnete Datei aus meinem Programm heraus zu löschen.
-
Vielleicht solltest du die Datei zunächst in einen Stream laden, mittels diesem die Kopie der Datei auf den Server
schieben und bei erfolgreichen Upload erst die Original-Datei löschen...
-
Gute Idee, danke