Autor Beitrag
wer_ist_wo
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 14.03.11 22:41 
Hallo
Ich lade per Button klick eine Datei runter.
Der Code sieht folgendermaßen aus:
ausblenden 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 user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am Mo 14.03.2011 um 22:25
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mo 14.03.11 22:45 
Wo ist dein Problem? Den Pfad des Anwendungsverzeichnisses bekommst du mit:
ausblenden Delphi-Quelltext
1:
ExtractFilePath(ParamStr(0))					

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
wer_ist_wo Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: 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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 14.03.11 22:59 
user profile iconwer_ist_wo hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 14.03.11 23:06 
so sieht mein gesamter code bei button klick aus:
ausblenden 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'nilnil, 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 14.03.11 23:16 
Nein mir fällt nichts auf, was denn?
lg
haentschman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: Mo 14.03.11 23:20 
schreib mal die 2 Pfadangaben (ist und soll) hier auf...
wer_ist_wo Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: 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 :zwinker:

PS: unter Windows gibt es kein C:// ... eher C:\
wer_ist_wo Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mo 14.03.11 23:37 
user profile iconwer_ist_wo hat folgendes geschrieben Zum zitierten Posting springen:

2.C:\Users\Andreas\Downloads/test


Abgesehen davon kann das auch in die Hose gehen wie user profile iconjaenicke schon geschrieben hat.

Wo genau liegt denn jetzt dein Problem bzw. was funktioniert nicht? :roll:

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
haentschman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: Mo 14.03.11 23:39 
das Problem ist sonnenklar... :zwinker:

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 Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 14.03.11 23:40 
user profile iconhaentschman hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mo 14.03.11 23:42 
Ja sollte doch klar sein, dass er sowas meint:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: Mo 14.03.11 23:44 
:evil: 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 Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 14.03.11 23:47 
Aber wie bau ich das ins programm ein damit nur die eine datei da hingeladen wird?
lg
haentschman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: Mo 14.03.11 23:53 
...meine Tischkante kriegt schon langsam Beulen... :zwinker:

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 :wave: