Dateigröße auf einem Webserver ermitteln( über WinAPI)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Dateigröße auf einem Webserver ermitteln( über WinAPI)

Beitrag von X0r »

Ist nichts besonderes und einige werden sich jetzt wahrscheinlich auch fragen, warum ausgerechnet API, geht doch auch locker mit den PB-Netzwerk-Funktionen. Nun, dieser Weg hat den Vorteil, dass er auch funktioniert, wenn man einen Proxy-Server nutzt.

Code: Alles auswählen

#HTTP_QUERY_CONTENT_LENGTH=5

Procedure.q GetContentLength(Url$)
  Protected hINET, hURL, FileSizet.s=Space(20), Size=StringByteLength(FileSizet), FileSize.q
  hINET=InternetOpen_("blub",0,0,0,0)
  If hINET
    hURL =InternetOpenUrl_(hINET,Url$,0,0,$80000000,0) 
    If hURL
      HttpQueryInfo_(hURL,#HTTP_QUERY_CONTENT_LENGTH,@FileSizet,@Size,#Null)
      FileSize=Val(FileSizet)
      InternetCloseHandle_(hURL) 
      InternetCloseHandle_(hINET)
    Else
      InternetCloseHandle_(hINET)
    EndIf
  EndIf
  ProcedureReturn FileSize
EndProcedure
Zuletzt geändert von X0r am 03.02.2010 23:30, insgesamt 3-mal geändert.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@X0r
Funktioniert wunderbar, gut gemacht :allright:

Kann ich eigentlich dein Code in meiner WinAPI Library hinzufügen?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

>Kann ich eigentlich dein Code in meiner WinAPI Library hinzufügen?
Ja, da es nix besonderes ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

:allright:
2 Variablen wurde nicht deklariert: hINET, hURL
und ValQ ist veraltet, Val ist auch für Quad.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

>2 Variablen wurde nicht deklariert: hINET, hURL
Uuups.. :oops:

>und ValQ ist veraltet, Val ist auch für Quad.
Ja, benutze immernoch 4.1. Habs trotzdem mal abgeändert.
Antworten