Einzelnen Beitrag anzeigen

Athris

Registriert seit: 18. Nov 2014
28 Beiträge
 
Delphi XE2 Professional
 
#16

AW: Problem mit Freisetzung von FileStream und Frage zum IdHTTP Datei Download

  Alt 4. Sep 2015, 12:18
Wenn das Programm das erste mal startet und der das erste mal in die Schleife reinläuft dann existiert die Datei nicht und der Filestream erstellt eine neue leere Dateihülle die im Anschluss mit 50000 Bytes gefüllt wird. Dann ist der erste Teil der Datei abgeschlossen und es geht wieder von vorne los. Nun haben wir ja bereits ein Teilstück der Datei, deswegen wird die vorhandene Datei geöffnet und an das Ende angesetzt. Das Programm lädt nun die nächsten 50000 Bytes. Das ganze geht dann solange bis die Datei komplett auf der Festplatte ist.

Wiegesagt ich würde auch gerne die Datei in einem Rutsch herunterladen. Dann habe ich aber das Problem, dass die wenn der Downloadprozess irgendwie unterbrochen wird, auf der Festplatte diese "halb gedownloadete" Datei liegt. Dieses Fragment hat aber bereits die volle Größe erhalten.
Beispiel:
Heruntergeladen wird eine 10MB Datei.
Filestream erstellt die Hülle mit Größe 0.
IdHTTP holt sich die 10MB Datei aus dem Internet und setzt damit die Größe der Hülle auf 10MB.
Während des Downloads schmiert der Rechner ab. Bisher wurden 6,5 MB heruntergeladen.
Beim nächsten Start prüft das Programm die lokale Dateigröße gegen die Webgröße. Beide sind identisch, da die lokale Dateihülle 10 MB hat, obwohl die Datei noch gr nicht voll heruntergeladen wurde.
  Mit Zitat antworten Zitat