Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Zitat:
|
Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Mit diesem Code, was ich hier in DP gefunden habe, funktioniert aber es erscheint ein Problem zu sein und zwar: Beim ab zweiter Aufruf, wird nicht die Datei direkt vom Server downloadet sondern vom Temp :mrgreen:
Ich ändere die Quelle in Server aber wenn ich die Datei downloade, dann finde ich dass der Code die alte Datei vom temp wahrscheinlich geholt hat !!!
Delphi-Quellcode:
http://www.delphipraxis.net/internal...downloadtofile
uses
URLMon; procedure TForm1.Button1Click(Sender: TObject); var Datei,Ziel:PChar; begin try Datei := 'http://www.DieSeite/DieDatei.txr'; Ziel := 'C:\Windows\Desktop\DieDatei.txt'; UrlDownloadToFile(nil, Datei, Ziel, 0, nil); except ShowMessage('Ein Fehler ist aufgetreten! Programm wird beendet!'); Form1.Close; end; end; end; |
Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Das liegt am Cache vom IE (und der wird bei dem Aufruf genutzt) ... das gleiche Verhalten hast du nämlich auch mit dem IE direkt.
IE-Cache löschen und es geht wieder ;) |
Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Zitat:
Und so hast du weder ein Problem mit den Rechten noch mit der Möglichkeit der portablen Verwendung. |
Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Hier ist eine Funktion, die eine Datei direkt ohne cache downloadet aber
das Aufruf der Funktion klappt bei mir nicht: 3. Funktion ganz unten : http://www.swissdelphicenter.ch/torr...ode.php?id=412
Delphi-Quellcode:
es passiert nichts
procedure TForm1.Button1Click(Sender: TObject);
var s,k: String; begin k:='http://xxx.com/test.gif'; s:='test.gif'; DownloadURL_NOCache(k, s); end; |
Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Wie wäre es denn, wenn du einfach mit den Indy Komponenten (die ja bei den meisten Delphiversionen bis auf die ganz alten Personal Editions dabei sind) die Datei direkt in den Speicher herunterlädst? Dann landet die gar nicht erst auf der Festplatte.
Da ist ganz einfach die Frage was du vor hast. Wenn du z.B. eine Versionsüberprüfung machen willst, dann ist das die einzig sinnvolle Lösung. Dass der Download nicht klappt, könnte am fehlenden Pfad liegen, ausprobiert habe ich das jetzt nicht. |
Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Zitat:
Grüße Klaus |
Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Indy ist bei mir installiert, gibt es ein Beispiel ?
Ja, es geht um eine Update. Ich wollte die Anwendung updaten Es geht nur um eine Datei Die Überprüfung der Update funktioniert wunderbar Ich habe Delphi 7 Pro |
Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Gib als Speicherpfad für die Datei generell einen absoluten Pfad an. Wer weiß wo die Datei sonst landet.
Merke dir einfach: Nutze nie relative Pfade. Dann kannst du solche Fehler schonmal ausschließen. |
Re: Eine Datei in dem selben Programm-Verzeichnis herunterla
Zitat:
Genauso geht das auch mit einer Datei, nur dass du als zweiten Parameter einen Stream angeben musst. Dann wird die Datei in den Stream gelegt, das kann ein TFileStream sein. Wie das geht siehst du z.B. hier: http://www.delphipraxis.net/internal...ct.php?t=44279 Hast du eigentlich die benötigten Adminrechte für ein Update berücksichtigt? Die saubere Vorgehensweise wäre für ein Programmupdate so: Die neue Datei ins Verzeichnis für temporäre Dateien (GetTempPath) herunterladen. Dann einen Updater mit Adminrechten starten, der entweder extra mitgeliefert wird oder in der Exe mitgeliefert wird oder die Exe selbst mit entsprechenden Parametern. Unter Vista wird dann die UAC angezeigt, der Nutzer bestätigt die Adminrechte, und dann kannst du erst eine Datei unter c:\programme ersetzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 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