Re: liste alle FTP Daten. hatt noch kleine Fehler
Zitat:
Ich hab jetzt mal angefangen:
Delphi-Quellcode:
Ich komme aber irgendwie nicht weiter.
procedure list(inhalt: string);
var strlist: tstringlist; ver_merk: string; ex, dir_ja, dir_nein: boolean; sl,z,d: integer; begin form1.IdFTP1.List(form1.ListBox2.Items,'',false); for z:=0 to form1.ListBox2.Count-1 do begin for sl:=0 to length(form1.ListBox2.Items[z]) do if form1.ListBox2.Items[z][sl]= '/' then form1.IdFTP1.ChangeDirUp; for d:=0 to length(form1.ListBox2.Items[z]) do begin dir_ja:= false; dir_nein:= true; if form1.ListBox2.Items[z][d]= '.' then begin dir_ja:= true; dir_nein:= false; end; end; if dir_nein then begin ver_merk:= ver_merk + form1.ListBox2.Items[z] + '/'; list(form1.ListBox2.Items[z]); end; if dir_ja then begin form1.ListBox1.AddItem(ver_merk + form1.ListBox2.Items[z], TObject (form1)); end; end; end; Es werden jetzt wieder alle verzeichnisse und Daten gelistet di im root liegen. |
Re: liste alle FTP Daten. hatt noch kleine Fehler
Zitat:
[edit] Bau dir doch erstmal eine Funktion, die lokal auf der Festplatte rekursiv Verzeichnisse auflistet. Wie Manuel schon sagte: Such mal in der CodeLib von der DP, da sind Funktionen irgendwo, die das machen. Gehe sie durch (Breakpoints, F8) und verstehe sie. Dann setze das nach FTP um. [/edit] |
Re: liste alle FTP Daten. hatt noch kleine Fehler
ok Ich hab schon angefangen
Delphi-Quellcode:
Ich binn eigenlich der meinung das das richtig ist aber irgendwie will es noch nicht so wie ich will.
procedure list(dir: string);
var d, all: integer; dirja: boolean; begin form1.IdFTP1.ChangeDir(dir); form1.IdFTP1.List(form1.ListBox3.Items, '*', false); for all:=0 to form1.ListBox3.Count-1 do begin dirja:= true; for d:=0 to length(form1.ListBox3.Items[0]) do begin if form1.ListBox3.Items[0][d]= '.' then begin form1.ListBox2.AddItem(form1.ListBox3.Items[0], TObject (form1)); form1.ListBox3.Items.Delete(0); dirja:= false; end; end; if dirja then begin list(form1.ListBox3.Items[0]); form1.ListBox3.Items.Delete(0); end; end; end; auserdem brauche ich ja den kompletten pfad zur datei wie mache ich dass? |
Re: liste alle FTP Daten. hatt noch kleine Fehler
Guten Abend,
mein Vorschlag zum Auflisten der Verzeichnisse eines FTP Servers. Getestet habe ich mit einem linux FTP-Server und es bestehen gute Chancen das der Code mit einem Windows FTP-Server nicht funktionieren wird.
Delphi-Quellcode:
procedure getFtpSubFolder(ftp:TidFtp;rootFolder:String;folderList:TStringList);
var sl: TStringList; i: Byte; begin sl := TStringList.create; // mask blanks rootFolder:=StringReplace(rootFolder,' ','\ ',[rfReplaceAll]); // get directorylist with details ftp.List(sl,rootFolder+'*',true); if sl.count > 0 then begin for i:=0 to sl.count -1 do begin if sl[i][1] = 'd' then // is it a folder begin // cut directory name sl[i]:=copy(sl[i],57,length(sl[i])); // add to folder list folderList.Add(rootFolder+sl[i]); // get subfolders from directory getFtpSubFolder(ftp,rootFolder+sl[i]+'/',folderList); end; end; end; sl.free; end; Angewendet wird es so:
Delphi-Quellcode:
[edit]
procedure TForm1.Button1Click(Sender: TObject);
var sl :TStringList; begin sl := TStringList.Create; idftp1.Host:='****'; idftp1.Username:='****'; idftp1.Password:='****'; idftp1.Connect(); getFtpSubFolder(idftp1,'/',sl); idftp1.Disconnect; memo1.Lines.Assign(sl); sl.free; end; .. und noch eine Variante die alle Dateien und Verzeichnisse auflistet.
Delphi-Quellcode:
procedure getFtpFileList(ftp:TidFtp;rootFolder:String;folderList:TStringList);
var sl: TStringList; i: Byte; FName: String; begin sl := TStringList.create; // mask blanks rootFolder:=StringReplace(rootFolder,' ','\ ',[rfReplaceAll]); // get directorylist with details ftp.List(sl,rootFolder+'*',true); if sl.count > 0 then begin for i:=0 to sl.count -1 do begin // cut directory name FName:=copy(sl[i],57,length(sl[i])); if sl[i][1] = 'd' then // is it a folder begin // add to folder list folderList.Add(rootFolder+FName+'/'); // get subfolders from directory getFtpFileList(ftp,rootFolder+FName+'/',folderList); end else begin // add Filename to list folderList.Add(rootFolder+FName); end; end; end; sl.free; end; Grüße Klaus |
Re: liste alle FTP Daten. hatt noch kleine Fehler
also funktioniren tut es nicht. meine frage warum??
|
Re: liste alle FTP Daten. hatt noch kleine Fehler
Hat jemand eben ne Glaskugel für mich?
|
Re: liste alle FTP Daten. hatt noch kleine Fehler
Zitat:
|
Re: liste alle FTP Daten. hatt noch kleine Fehler
Freut mich, dass jemand noch eine hat. Ich schick Dir per PN grad meine Postadresse :zwinker:
|
Re: liste alle FTP Daten. hatt noch kleine Fehler
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Abend,
Glaskugel habe ich auch keine. Was es sein könnte das die Prozedur bei dem Aufruf unbekannt ist. In meinem simplen Beispielprojekt wurde die Prozedur vor der ButtonClick Methode eingefügt. Daher ist sie in der ButtonClick Methode bekannt weil vorher definiert. Du kannst die Prozedur auch gerne zur Methode Deiner Klasse machen. Dann würde der Prozedurkopf so ausschauen:
Delphi-Quellcode:
Und die Klassendefinition so:
procedure TForm1.getFtpFileList(ftp:TidFtp;rootFolder:String;folderList:TStringList);
Delphi-Quellcode:
Anbei noch das Beispielproject mit Screenshot, exe und pas.
TForm1 = class(TForm)
... procedure Button1Click(Sender: TObject); private procedure getFTPFileList(ftp:TidFtp;rootFolder:String;folderList:TStringList); { Private declarations } public { Public declarations } end; .. gerne geschehen. Grüße Klaus |
Re: liste alle FTP Daten. hatt noch kleine Fehler
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:27 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