Autor |
Beitrag |
wer_ist_wo
Hält's aus hier
Beiträge: 13
|
Verfasst: Mo 14.03.11 22:41
Hallo
Ich lade per Button klick eine Datei runter.
Der Code sieht folgendermaßen aus:
Delphi-Quelltext 1:
| UrlDownloadtofile(nil,PChar('url_zu_meiner_datei'),PChar(ExtractFilePath(Application.Exename) + 'EXE Name'),0,nil); |
Doch ich will das diese Datei in einen Ordner reingeladen wird der in Programm verzeichnis liegt.
Könnt ihr mir helfen wie das geht?
lg Moderiert von Narses: Topic aus VCL (Visual Component Library) verschoben am Mo 14.03.2011 um 22:25
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Mo 14.03.11 22:45
Wo ist dein Problem? Den Pfad des Anwendungsverzeichnisses bekommst du mit:
Delphi-Quelltext 1:
| ExtractFilePath(ParamStr(0)) |
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
wer_ist_wo 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mo 14.03.11 22:51
nein ich hab ja bereits das programm verzeichnis aber will die exe in ein von mir angelegten ordner reinladen das programm liegt unter c:// und da bei einen click auf den button wird ein ordner erstellt da soll die datei rein
lg
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Mo 14.03.11 22:56
Na dann musst du prüfen ob der Ordner bereits existiert und wenn nicht musst du MkDir verwenden: www.delphibasics.co.uk/RTL.asp?Name=MkDir
Delphi-Quelltext 1: 2: 3: 4: 5:
| procedure TForm1.btnTestDirClick(Sender: TObject); begin if NOT DirectoryExists(ExtractFilePath(ParamStr(0)) + '\test') then MkDir(ExtractFilePath(ParamStr(0)) + '\test'); end; |
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Zuletzt bearbeitet von Dude566 am Mo 14.03.11 23:04, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 14.03.11 22:59
wer_ist_wo hat folgendes geschrieben : | Doch ich will das diese Datei in einen Ordner reingeladen wird der in Programm verzeichnis liegt. |
Dir ist ja hoffentlich klar, dass das dann nur bei dir funktioniert, da im Programmverzeichnis normalerweise kein Programm Schreibrechte hat. Jedenfalls, wenn man seinen PC ordentlich eingerichtet hat.
www.delphi-library.d...ewtopic.php?p=548600
|
|
wer_ist_wo 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mo 14.03.11 23:06
so sieht mein gesamter code bei button klick aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| begin if not DirectoryExists(ExtractFilePath(Application.Exename)+ 'test') then begin ForceDirectories(ExtractFilePath(Application.Exename)+ 'test'); end; If IdHTTP1.Get('http://www.zensiert.de//version.txt') <> version then begin Showmessage('Download gestartet'); UrlDownloadtofile(nil,PChar('http://www.zensiert.de/version.txt'),PChar(ExtractFilePath(Application.Exename) + 'wecker.exe'),0,nil); UrlDownloadtofile(nil,PChar('http://www.zensiert.de/patch.exe'),PChar(ExtractFilePath(Application.Exename) + 'patch.exe'),0,nil); UrlDownloadtofile(nil,PChar('http://www.zensiert.de/test/test.exe'),PChar(ExtractFilePath(Application.Exename) + 'project1.exe'),0,nil); Showmessage('Download beendet'); ShellExecute(Handle, nil, 'patch.exe', nil, nil, SW_SHOW); application.Terminate; end; |
Der Ordner wenn nicht existiert, wird er erstellt.
In diesen eben Erstellten ordner will ich die test.exe unter test reinladen lassen.
lg
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 14.03.11 23:15
Hallo...
wie sieht denn der komplette Pfad dieses Konstruktes aus ?
Zitat: | ExtractFilePath(Application.Exename) + 'wecker.exe' |
...und jetzt schreibe mal auf Papier wie der komplette Pfad lautet wo es hin soll... Fällt dir was auf ?
|
|
wer_ist_wo 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mo 14.03.11 23:16
Nein mir fällt nichts auf, was denn?
lg
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 14.03.11 23:20
schreib mal die 2 Pfadangaben (ist und soll) hier auf...
|
|
wer_ist_wo 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mo 14.03.11 23:23
Also das Programmverzeichnis befindet sich unter c://
Wenn ich den Button klicke wird unter c:// ein ordner namens test erstellt.
In diesen Ordner soll einen der dateien rein.
lg
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 14.03.11 23:27
... gaaaanz laaangsam zum Ausfüllen:
1. wo befindet sich deine EXE (Pfadangabe komplett) ?
2. wie soll der Pfad (komplett) heißen wo die Downloads hin sollen ?
3. was bitte ist bei deiner Logik das "Programmverzeichnis" ?
beantworte doch einfach mal die Nachfragen... ohne zu denken
PS: unter Windows gibt es kein C:// ... eher C:\
|
|
wer_ist_wo 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mo 14.03.11 23:30
1. C:\Users\Andreas\Downloads
2.C:\Users\Andreas\Downloads/test
3.Nicht jeder user hat das verzeichniss wie ich deswegen soll der ordner da erstellt werden, wo der user sein programm hat.
lg
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 14.03.11 23:34
gut...
also die EXE des gestarteten Programmes liegt im Verzeichnis wie 1. ...
1. was für eine Pfadangabe liefert ExtractFilePath(Application.Exename) ?
2. welchen Pfad ergibt ExtractFilePath(Application.Exename) + 'wecker.exe' im Download ?
3. und wo soll der Download hin ?
fällt dir nun etwas auf ?
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Mo 14.03.11 23:37
wer_ist_wo hat folgendes geschrieben : |
2.C:\Users\Andreas\Downloads/test
|
Abgesehen davon kann das auch in die Hose gehen wie jaenicke schon geschrieben hat.
Wo genau liegt denn jetzt dein Problem bzw. was funktioniert nicht? 
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 14.03.11 23:39
das Problem ist sonnenklar...
Die Dateien sind nach dem Download nicht in "Test"... (unabhängig von den anderen Problemchen)
Ich wills nur nicht vorkauen... er soll es selbst sehen
Zuletzt bearbeitet von haentschman am Mo 14.03.11 23:41, insgesamt 2-mal bearbeitet
|
|
wer_ist_wo 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mo 14.03.11 23:40
haentschman hat folgendes geschrieben : | gut...
also die EXE des gestarteten Programmes liegt im Verzeichnis wie 1. ...
1. was für eine Pfadangabe liefert ExtractFilePath(Application.Exename) ?
2. welchen Pfad ergibt ExtractFilePath(Application.Exename) + 'wecker.exe' im Download ?
3. und wo soll der Download hin ?
fällt dir nun etwas auf ? |
1. Das liefert mir den pfad C:\Users\Andreas\Downloads
2. das ergibt den gleichen pfad nur das die exe in wecker.exe umbenannt wird.
3. Der download soll unter C:\Users\Andreas\Downloads\test rein
lg
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Mo 14.03.11 23:42
Ja sollte doch klar sein, dass er sowas meint:
Delphi-Quelltext 1: 2: 3:
| var filepath : string; filepath := ExtractFilePath(ParamStr(0)) + 'test\wecker.exe'; |
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 14.03.11 23:44
 wie soll er was lernen...
zu 1. ist das der komplette Pfad oder ist am Ende ein \ ?
zu 2. wecker.exe wird an den Pfad zu 1. angehängt (durch das + ... Stringoperation) wie sieht der komplette Pfad nun aus ?
zu 3. und was fehlt nun im Downloadpfad beim UrlDownloadtofile ?
Zuletzt bearbeitet von haentschman am Mo 14.03.11 23:47, insgesamt 1-mal bearbeitet
|
|
wer_ist_wo 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mo 14.03.11 23:47
Aber wie bau ich das ins programm ein damit nur die eine datei da hingeladen wird?
lg
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 14.03.11 23:53
...meine Tischkante kriegt schon langsam Beulen...
du hast ein Problem noch nicht verstanden und kommst gleich mit neuen Fragen.
Arbeite Stück für Stück unsere Konversation von vorne noch mal ab. Schreibe es auf Papier (die Pfadangaben). Dann siehst du was falsch ist.
Tipp: es fehlt was in der Pfadangabe im UrlDownloadToFile
...ich guck morgen noch mal rein 
|
|