Einzelnen Beitrag anzeigen

Benutzerbild von dor557
dor557

Registriert seit: 23. Okt 2004
Ort: Walldorf
197 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

File Download Mit status anzeige !?

  Alt 7. Jan 2008, 01:26
Hallo zusammen.

Ich habe Inzwischen Folgendes Problem :

Ich möchte aus dem Internet ein Update-File herunterladen.

Das Realisiere ich momentan mit Folgendem Code :

Delphi-Quellcode:

function GetInetFile (const fileURL, FileName: String): boolean;
const
  BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: DWORD;
  f: File;
  sAppName: string;
  f1 : Integer;
begin
 result := false;
 sAppName := ExtractFileName(Application.ExeName) ;
 hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0) ;
 try
  hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, INTERNET_FLAG_DONT_CACHE, 0) ;
  try
   AssignFile(f, FileName) ;
   Rewrite(f,1) ;
   repeat
    InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
    BlockWrite(f, Buffer, BufferLen)
   until BufferLen = 0;
   CloseFile(f) ;
   result := True;
  finally
   InternetCloseHandle(hURL)
  end;
 finally
  InternetCloseHandle(hSession)
 end;
end;
Funktioniert auch so weit ganz gut.

Jetzt möchte ich noch das Ein statusbalken z.b. TProgressBar anzeigt wie weit der Download Gerade fortgeschritten ist.

Nun kann ich ja wenn ich es möchte die Dateigrösse in einer Temporären datei auf dem Internet-Server zwischenspeichern und auslesen. Das ist aber nicht das was ich möchte.

Ausser der Buffer-Grösse (1024) Logisch.... Kann ich nichts ermitteln. Oder Doch ?

wenn ja wäre es schön wenn ich erfahren könnte wie.

Villeicht eine andere methode um dateien aus dem internet herunterzuladen, oder Eine Funktion die ich übersehen habe ??

Bin für alle vorschläge offen.

Gruss Sascha
Sascha Nickel
Man muss die Dinge nehmen wie sie kommen, man kann aber auch dafür sorgen das die dinge so kommen wie man sie nehmen möchte.
  Mit Zitat antworten Zitat