Entwickler-Ecke

Internet / Netzwerk - UrlDownloadToFile


schaumermal - Fr 13.01.06 16:08
Titel: UrlDownloadToFile
Hallo,

ich spiele ein wenig mit der Funktion "urldownloadtofile".

Ich habe ein Programm geschrieben, welches über die Funktion urldownloadtofile eine Datei aus dem Internet herunter lädt. Dies funktioniert auch einwandfrei.
Allerdings ist mir folgendes aufgefallen:

Der Download der Datei geht genau 1-mal. Danach wird bei Aufruf der Funktion nicht die Datei aus dem Internet geladen sondern die von der lokalen Platte aus dem Verzeichnis
„C:\Dokumente und Einstellungen\Laptop\Lokale Einstellungen\Temporary Internet Files“.

Es sieht also so aus, als ob diese Funktion zuerst in dem Verzeichnis „C:\Dokumente und Einstellungen\ Laptop \Lokale Einstellungen\Temporary Internet Files“ nachschaut, ob diese Dateivorhanden ist, falls ja lädt er diese und nicht die aus dem Internet.

Kann mir jemand sagen, wie ich immer die Datei aus dem Internet lade?


Gruß


Delete - Fr 13.01.06 17:14

Ich bin nicht 100% sicher, ob ich die richtige Funktion erwischt habe :oops:, aber du könntest versuchen, den Cache-Eintrag deiner Datei mit DeleteUrlCacheEntry" zu entfernen. Die Parameter der Funktion findest du im MSDN von Microsoft oder in einem lokal auf deinem Rechner installierten PSDK.


schaumermal - Fr 13.01.06 17:44

Hi,

Danke für Deine Antwort.
Nur leider müsste diese Einstellungen an allen PC's erfolgen, die an diesem Update teilnehmen. Dies kann ich aber nicht sicherstellen. :(


Delete - Fr 13.01.06 19:13
Titel: Re: UrlDownloadToFile
Mir war so, als hättest du geschrieben:
user profile iconschaumermal hat folgendes geschrieben:

Ich habe ein Programm geschrieben, welches über die Funktion urldownloadtofile eine Datei aus dem Internet herunter lädt.

Hindert dich irgendwer oder irgendwas, in dein Programm vor dem Download der Datei dafür zu sorgen, dass eine evtl. im Cache vorhandene Datei vorher entfernt wird? :gruebel:


schaumermal - Sa 14.01.06 22:56

Hi,

stimmt ich habe dies geschreiben.
Allerdings habe ich nie behauptet, dass dieses Programm nur auf meinem Rechner läuft.
Auserdem wäre es auch nicht sinnvoll eine Update zu erstellen, dies in's I-Net zu stellen und danach über ein Updateprogramm wieder lokal auf meinen Rechner zu laden . :wink:

Also ist meine Frage immer noch offen.
Kennt jemach hierfür eine Lösung?


Gruß


thkerkmann - So 15.01.06 15:54

Hi,

erweitere einfach mal die URL

z.B.

URL := meineURL + '?zeit=' + Formatdatetime('yyyymmddhhnnsszzz',Now);

dann brauchst Du auf den Cache der Internetlibrary keine Rücksicht zu nehmen.

Ich meine es gibt aber auch noch einen Parameter mit dem man das cache-verhalten steuern kann.

suche mal im web nach httpget

da gibt es eine Komponente um genau das zu machen..

Gruss

Thomas


schaumermal - Mo 16.01.06 01:55

Hi,

Danke für Deinen Hinweis.
Ich habe jetzt allerdings eine Lösung gefunden, die zuerst die Datei auf dem Cache löscht und somit immer die aktuelle Datei aus dem Internt lädt.


Delphi-Quelltext
1:
2:
3:
4:
5:
   // Zuerst die Datei löschen
   DeleteURLCacheEntry(Quelle); 

   // Datei neu aus dem I-Net laden
   URLDownloadToFile(nil,Quelle,Ziel,0,CDownStatus);



Danke und Gruß

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt


Delete - Mo 16.01.06 16:02

Ja, aber genau das habe ich doch vorgeschlagen. :roll:
Oh, Mann.