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