AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Zu Downloadene Dateigröße herausbekommen
Thema durchsuchen
Ansicht
Themen-Optionen

Zu Downloadene Dateigröße herausbekommen

Ein Thema von xZise · begonnen am 15. Feb 2007 · letzter Beitrag vom 19. Feb 2007
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Zu Downloadene Dateigröße herausbekommen

  Alt 15. Feb 2007, 21:31
Wie kann ich die Dateigröße einer zu downloadenen Datei herausbekommen?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: Zu Downloadene Dateigröße herausbekommen

  Alt 15. Feb 2007, 21:55
Wie downloadest du die Datei denn ?

Per HTTP, dann gibt es im Header Content-Length.
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Zu Downloadene Dateigröße herausbekommen

  Alt 15. Feb 2007, 21:56
Hi!

ich benutze z.Zt. folgende Funktionen:


Beim HTTP-Download:
Delphi-Quellcode:
uses WinINet;

var
  URL: HInternet;

  function GetHTTPFileSize(hInet:HINTERNET):cardinal;
  var
    dwindex,dwcodelen :dword;
    dwcode:array[1..20] of char;
  Begin
    dwIndex := 0;
    dwCodeLen := 10;
    HttpQueryInfo(hInet, HTTP_QUERY_CONTENT_LENGTH, @dwcode, dwcodeLen, dwIndex);
    Result := cardinal(strtoint(PCHAR(@dwcode)));
  end;

URL := InternetOpenURL(hSession, PChar(URL), nil, 0, 0, 0);
SizeOfFile:= GetHTTPFileSize(URL);

Beim Download per FTP:
Delphi-Quellcode:
   
var
  sRec: TWin32FindData;

    if FtpFindFirstFile(fFTP, PChar(ftpFile), sRec, 0, 0) <> nil then
    begin
      fileSize := sRec.nFileSizeLow;astWriteTime;
    end else
    begin
      ShowMessage(Format('Datei nicht vorhanden',[ftpFile]));
    end;
Gruß
Pfoto
Jürgen Höfs
Jürgen Höfs / picoly.de
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Zu Downloadene Dateigröße herausbekommen

  Alt 15. Feb 2007, 22:10
ICh benutzte TIdHTTP

URL := InternetOpenURL(hSession, PChar(URL), nil, 0, 0, 0); Das "Url" in der PChar-Methode ist ein String oder

[edit]
Also ich habe jetzt folgenden Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  URL: HInternet;
  err : string;
  
  function GetHTTPFileSize(hInet:HINTERNET):cardinal;
  var
    dwindex,dwcodelen :dword;
    dwcode:array[1..20] of char;
  Begin
    dwIndex := 0;
    dwCodeLen := 10;
    HttpQueryInfo(hInet, HTTP_QUERY_CONTENT_LENGTH, @dwcode, dwcodeLen, dwIndex);
    Result := cardinal(strtoint(PCHAR(@dwcode)));
  end;
begin
     lSize.Caption := 'Size: Loading...';
     lSize.Repaint;
     try
        lSize.Caption := 'Size: ' + IntToStr(GetHTTPFileSize(InternetOpenURL(InternetOpen('InetURL:/1.0',INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0), PChar(Edit1.Text), nil, 0, 0, 0))) + ' B';
     except
        err := SysErrorMessage(GetLastError);
        if err <> 'then
           err := ' (' + err + ')';
        lSize.Caption := 'Size: Error' + err;
     end;
end;
Und dieser gibt bei manchen Seiten (z.B. DP-Index) einen Fehler:
Zitat:
---------------------------
Project1
---------------------------
'ÿÿÿÿäõ' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------
Wie kann ich das beheben?
Bei anderen Seiten (z.B. Logo) funktioniert es wunderbar....
[/edit]
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Zu Downloadene Dateigröße herausbekommen

  Alt 19. Feb 2007, 16:32
Gibt es keine Erklärung für dieses Phänomen?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Zu Downloadene Dateigröße herausbekommen

  Alt 19. Feb 2007, 16:45
Returncode von HttpQueryInfo muss abgefragt werden.
Andreas
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Zu Downloadene Dateigröße herausbekommen

  Alt 19. Feb 2007, 16:48
Moin Fabian,

ich schlage vor, dass Du erst einmal den Code aufräumst.
So etwas:
GetHTTPFileSize(InternetOpenURL(InternetOpen(... geht ja schon mal gar nicht

Die Handles müssen schliesslich wieder geschlossen werden.
Ausserdem kannst Du dann auch prüfen, ob Du die Funktionen überhaupt erfolgreich aufgerufen werden konnten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Zu Downloadene Dateigröße herausbekommen

  Alt 19. Feb 2007, 16:50
Zitat von shmia:
Returncode von HttpQueryInfo muss abgefragt werden.
???

Also ich habe auch noch das gefunden:
Größe einer Onlinedatei ermitteln

Aber er kennt nicht "GetInternetFileSize" ... Oder gehört das zu IdHttp?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Zu Downloadene Dateigröße herausbekommen

  Alt 19. Feb 2007, 17:43
Moin Fabian,

HTTPQueryInfo gibt true zurück wenn der Aufruf erfolgreich war.
War er es nicht kannst Du Dir mit GetLastError zurückgeben lassen, warum nicht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Zu Downloadene Dateigröße herausbekommen

  Alt 19. Feb 2007, 18:17
Zitat von Christian Seehase:
Moin Fabian,

ich schlage vor, dass Du erst einmal den Code aufräumst.
So etwas:
GetHTTPFileSize(InternetOpenURL(InternetOpen(... geht ja schon mal gar nicht

Die Handles müssen schliesslich wieder geschlossen werden.
Ausserdem kannst Du dann auch prüfen, ob Du die Funktionen überhaupt erfolgreich aufgerufen werden konnten.
Sry... Irgendwie fehlte die Rote Box....

Also okay ^^ Ich werds wieder aufsplitten, aber daran wirds nicht liegen...

Zitat von Christian Seehase:
HTTPQueryInfo gibt true zurück wenn der Aufruf erfolgreich war.
War er es nicht kannst Du Dir mit GetLastError zurückgeben lassen, warum nicht.
Aber warum geht es manchmal nicht, und dann machmal wieder ?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz