Größe von Datei auf Server?

Hallo alle zusammen!

Ich möchte momentan ein Downloadprogrammschreiben, welches mit UrlDownloadToFile eine Datei herunterläd (KonsolenGUI) ich möchte nun eine Art fortschrittsanzeige schreiben, dazu brauche ich jedoch die Größe der Datei auf dem server… wie bekomme ich diese Heraus???

MFG, Xaser

bitte ich brauche hilfe :frowning:

Hallo,

Weiss zwar nicht wie es mit UrlDownloadToFile funktioniert, aber diese Funktion kommt aus der WinAPI oder? Dann müsste auch mein Quellcode mit InternetReadFile funktionieren.

#include
#include
#include

#pragma comment(lib, "Wininet.lib")

int GetSize(HINTERNET hUrl);
bool DownloadToFile(HINTERNET hUrl, char \*path);


int main()
{
 LPCSTR Download = "Link"; //Hier einen Link einfügen
 HINTERNET hInet, hUrl;
 hInet = InternetOpen("MeinProgramm", INTERNET\_OPEN\_TYPE\_PRECONFIG, 0, 0, 0);
 hUrl = InternetOpenUrl(hInet, Download, 0, 0, 0, 0);
 GetSize(hUrl);
 DownloadToFile(hUrl, "C:\\test.exe");
 InternetCloseHandle(hUrl);
 InternetCloseHandle(hInet);
 system("pause");
}

int GetSize(HINTERNET hUrl)
{
 int length = 1024;
 char \*size = (char\*)malloc(length);
 HttpQueryInfo(hUrl, 5, size, (LPDWORD)&length, 0);
 return atoi(size);
}

bool DownloadToFile(HINTERNET hUrl, char \*path)
{
 int Bytes, Buffer, eBytes;
 int SizeOfFile;
 SizeOfFile = GetSize(hUrl);
 int iProzent;
 Bytes = 0;
 eBytes = 0;
 Buffer = 16384;
 bool Loop = true;
 void \*Data = malloc(Buffer);
 char output [300];
 DWORD written;
 float MB, eMB;

 HANDLE file;
 file = CreateFile(path, GENERIC\_READ | GENERIC\_WRITE, 0, NULL, CREATE\_ALWAYS, FILE\_ATTRIBUTE\_NORMAL | FILE\_FLAG\_RANDOM\_ACCESS, NULL);
 if (file == INVALID\_HANDLE\_VALUE)
 {
 std::cout

Hoffe es funktioniert.

Gruß Michael


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>