Entwickler-Ecke
Internet / Netzwerk - auf FTP connecten und alle files kopieren
hpburner - Mo 10.02.03 23:05
Titel: auf FTP connecten und alle files kopieren
Hallo
ich habe ein Problem ich will per Tool wo man nur die IP Adresse eingeben muss auf einen FTP connecten (XBox) und dort alle files die auf einem bestimmten laufwerk sind (laufwerk D:) markieren und rüber auf meine Festplatte holen.
Das alles soll am besten per Indy Komponenten verwirklicht werden (Zumindest weiss ich, dass es damit möglich ist)
http://www.nevrona.com/Indy/.
Leider kenne ich mich damit nicht aus und weiss nicht wirklich wie ich das anstellen kann daher bräucht ich mal eure Hilfe ;)
Danke im Vorraus für Hilfe
cu
derDoc - Sa 22.02.03 11:03
Also du benutzt die
idFTP Komponente aus dem Register
Indy-Clients.
Dann gibst du dieser alle benötigten Daten (z.B. Benutzername, Password, Port und Servername).
Nun kannst du mit
Quelltext
1:
| procedure List(ADest: TStrings; const ASpecifier: string; const ADetails: boolean); |
der
StringList ADest alle auf dem Server liegenden Dateien übergeben und diese dann in einer
for-Schleife mit
Quelltext
1:
| procedure Get(const ASourceFile: string; const ADestFile: string; const ACanOverwrite: boolean); overload; |
herunterladen.
hpburner - Mi 12.03.03 22:59
danke dir (sorry das ich solange nicht antworten konnte) für deine Hilfe !
also das hier ist mein bisheriger sourcecode (die xbox akzeptierts und m connecten + aus DVD laufwerk wechseln funzt 1A) :
Quelltext
1: 2: 3: 4: 5: 6:
| XFTP.Username := EUser.Text; XFTP.Password := EPassword.Text; XFTP.Host := IP_Part_1.Text+'.'+IP_Part_2.Text+'.'+IP_Part_3.Text+'.'+IP_Part_4.Text; XFTP.Connect(); XFTP.ChangeDir('/D/'); //XBOX DVD-ROM XFTP.List(nil,'',true); // shortlist unterstüzt die xbox nich ... |
So nur das mit dem im laufwerk (verzeichniss wird ja gemappt vom xbox ftp prog) /D/ bleiben und alle files und Ordner ziehen hab ich nicht hinbekommen
wenn einer mir das noch genauer erklären könnte wäre ich dankbar
cu
derDoc - Do 13.03.03 10:26
Also ich würde mit List(StrList, '', false); arbeiten, denn mit nil bekommst du die Dateien ja nicht in eine Stringlist.
hpburner - Do 13.03.03 19:25
jo ok habs jetzt so gemacht
Quelltext
1: 2:
| for i := 1 to xftp.ListResult.Count do xftp.Get(xftp.ListResult.Strings[i - 1],includetrailingbackslash(getcurrentdir)+xftp.ListResult.Strings[i - 1], true, true); |
tjaja nun bekommt er ja alle files die in /D/ liegen aber wie nun in die einzelnen ordner wechseln und das gleiche machen ?!
da hab ich echt keinen plan
kann man da evtl. was mit xftp.directorylisting... machen ?!
cu und thx
hpburner - Fr 14.03.03 14:24
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure KopiereAlles(Verz: string); var i : integer; begin xftp.ChangeDir(Verz); //In angegebenes Verzeichnis wechseln XFTP.List(listboxxftp.Items,'',false); for i := 1 to xftp.ListResult.Count do // 'Jeden einzelnen Eintrag behandeln try //Davon ausgehen, dass es sich um eine Datei handelt xftp.Get(xftp.ListResult.Strings[i -1],includetrailingbackslash(getcurrentdir)+xftp.ListResult.Strings[i - 1],true, true); except; //Fehler beim Kopieren, wahrscheinlich ein Ordner und keine Datei. Daher die function nochmal aufrufen mit neuem Parameter KopiereAlles(verz+'/'+xftp.ListResult.Strings[i -1]) end; end; |
soo jetzt hab ichs so mal versucht
mehr oder weniger rekursiv klappt aber so auch nicht weil er nur die dateien anzeigt in listboxxftp und keine directorys wenn ADetails false ist...
weiss einer wie ich das egscheit zum laufen bekommen kann ?!?!
danke für Hilfe
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!