![]() |
URLDownloadToFile ohne Cache
Ich lade einige Dateien mit URLDownloadToFile runter, das geht auch ganz gut.
Danach mach ich 'nen Hash-Vergleich, um die Datei zu prüfen. Dabei ist mir aber aufgefallen, das vorrangig die Kopie aus dem IE-Cache damit geholt wird, wenn diese vorhanden ist. Das ist ja auch nicht schlecht - schneller und weniger Traffik. Aber manchmal kommt es vor, das sich auf dem Server eine neuere Version dieser Datei befindet aber immernoch die "alte" Kopie aus dem IE-Cache verwendet wird. Ist es also möglich zu verlangen, das nicht die Datei aus dem Cache, sondern die Neue runtergeladen wird? Ich könnte ja unter cDownloadStatusCallback.OnProgress, ulStatusCode = BINDSTATUS_CACHEFILENAMEAVAILABLE den Namen der Datei im Cache erhalten und diese nach dem Download löschen, so dass bei einem Fehler und im nächsten Durchgang auf jeden Fall die neue runtergeladen würde, also wenn z.B. eine ältere Version geladen wurde. Aber so ganz sauber finde ich diese Art, mit dem Löschen, nicht. |
Re: URLDownloadToFile ohne Cache
Gibt es da nicht irgendeinen Flag, der besagt, dass die Datei nicht aus dem Cache geholt werden soll? Ich meine ich hätte da mal was gesehen. :gruebel:
|
Re: URLDownloadToFile ohne Cache
Hi,
laut ![]() gibt es wohl so ein Flag nicht wie Luckie meint! Wenn ich mich aber nicht täusche dann ist das Laden von Dateien aus dem Cache eine Generelle abart vom Internet Explorer! Ich hatte mal einen Download mit 400 kb/s und hab mich gewundert wie das zustande kommen kann! (Hab "nur" DSL) Im laufe dieser Disskusion schrieb dann halt jemand das die Datein wenn schon vorhanden aus dem Chache geladen werden... Die Einfachste Lösung um das zu umgehen wäre wohl wenn Du jedes mal vor einem Download erst einmal im Cache nachauen lässt ob die Datei schon vorhanden ist und wenn ja diese vor dem Download löschen lässt! So ist immer gewährleistet das die Downloads aktuell sind. Gruß Bit [Nachtrag: Auf den Swiss Delphi Seiten gibt es eine Prozedur zum löschen des Gesamtem Caches: ![]() Die kannst Du bestimmt Deinen Wünschen entsprechend anpassen... ] |
Re: URLDownloadToFile ohne Cache
ich hatte anfangs auch erst URLDownloadToFile verwendet, bin aber dann doch auf INDY umgestiegen.
Da wird der Internet Explorer Cache gar nicht genutzt. Ausserdem hatte INDY den Vorteil, dass man auch in einen Stream im Speicher laden kann. Da muss man nich so viel auf der Festplatte rummurksen, wenn man mit den Daten was machen möchte. Das ging per URLDownloadToFile nicht , zumindest hab ich nix gefunden. Da gehts nur direkt auf Festplatte. |
Re: URLDownloadToFile ohne Cache
Nun ja. Aber wenn man den Overhead der Indy's vermeiden möchte und es nur um das Runterladen geht...
|
Re: URLDownloadToFile ohne Cache
Also den kompletten Cache wollte ich ja nicht unbedingt löschen.
Und 'ne extra Komponente einzubinden wollte ich auch nicht unbedingt. Und teilweise ist das ja nicht schlecht, das die Version aus'm Cache verwendet wird. Dann mach ich wohl doch das mit dem Löschen der Cache-Version nach dem Download, bei 'ner falschen/defekten Dateiversion und 'nem nochmaligen, "richtigen" Download. PS: Wie kann ich den abfragen, ob eine Datei schon im Cache liegt. Sonst werden 2 Dateien (vermutlich ~200 KB) doppelt geladen. |
Re: URLDownloadToFile ohne Cache
![]() Keine(r) 'ne Ahnung, wie ich "einfach" und möglicht nur mit den Standard-Dalphi-Komponenten/Funktionen herausfinden kann, ob eine bestimmte Datei (z.B. ![]() Mein Update (das Download-Proggi) läuft jetzt schon "super". Nur das Proggi, welches die Uploaddateien zusammenstellt und die hochgeladenen Dateien prüft, braucht recht lange - für ~2000 Dateien / 6,5 MB benötigt es mindestens 20 Minuten. :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz