
Zitat von
Fussball-Robby:
Schonmal gesucht?
hier wurde ein Code gepostet, mit dem ein Ordner auf einem
FTP-Server rekursiv durchsucht und das Ergebnis aufgelistet wird. Wenn du das dann hast, sollte das downlo
aden auch nicht mehr schwer sein.
Mfg
hm, eigenlich hatte ich schon gesucht.
Irgendwie funktionirt das bei mir ich so wirklich. eigentlich gar nicht.
Delphi-Quellcode:
procedure FindAllFilesFTP(FTPCon: TIdFTP; Directory: String; FileList,DirList: TStrings; WithSubDirs, ClearList: Boolean);
procedure ScanDir(const Directory,SubDir: String; WithDir: Boolean);
var
i: Integer;
begin
FTPCon.ChangeDir(Directory + SubDir);
FTPCon.List(filelist);
for i := 2 to FTPCon.DirectoryListing.Count-1 do
if FTPCon.DirectoryListing.Items[i].ItemType = ditFile then
begin
if WithDir then FileList.Add(SubDir + FTPCon.DirectoryListing.Items[i].FileName)
else FileList.Add(FTPCon.DirectoryListing.Items[i].FileName);
end else if FTPCon.DirectoryListing.Items[i].ItemType = ditDirectory then
DirList.Add(SubDir + FTPCon.DirectoryListing.Items[i].FileName + '/');
if WithSubDirs then
begin
for i := 2 to FTPCon.DirectoryListing.Count-1 do
if FTPCon.DirectoryListing.Items[i].ItemType = ditDirectory then
ScanDir(Directory + SubDir,FTPCon.DirectoryListing.Items[i].FileName + '/',True);
end;
end;
begin
if not FTPCon.Connected then Exit;
FileList.BeginUpdate;
DirList.BeginUpdate;
try
if ClearList then
begin
FileList.Clear;
DirList.Clear;
end;
if Directory = '' then Exit;
if Directory[Length(Directory)] <> '/' then
Directory := Directory + '/';
ScanDir(Directory,'',False);
finally
DirList.EndUpdate;
FileList.EndUpdate;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var slist, dir: TStrings;
anzahl, sl: integer;
begin
FindAllFilesFTP(IdFTP1, form1.dir.text, slist, dir, true, false);
form1.ListBox1.Items:= slist;
form1.ListBox2.Items:= dir;
end;
Programm startet zwar ich bockomme die Meldung das Das Verzeichniss nicht existirt.
und wenn ich hier:
Delphi-Quellcode:
procedure FindAllFilesFTP(FTPCon: TIdFTP; Directory: String; FileList,DirList: TStrings; WithSubDirs, ClearList: Boolean);
procedure ScanDir(const Directory,SubDir: String; WithDir: Boolean);
var
i: Integer;
begin
FTPCon.ChangeDir(Directory + SubDir);
FTPCon.List; //<<< Hier
for i := 2 to FTPCon.DirectoryListing.Count-1 do
if FTPCon.DirectoryListing.Items[i].ItemType = ditFile then
begin
if WithDir then FileList.Add(SubDir + FTPCon.DirectoryListing.Items[i].FileName)
nicht "(form1.listbox1.items)" eintrage leut der code mit der meldung
Code:
[Fehler] Unit1.pas(85): Nicht genügend wirkliche Parameter
gar nicht.
und ich finde idAllFTPListParsers irgentwie nicht.