Hallo zusammen,
Ein komplettes Verzeichnis auf einen
FTP zu laden ist mir gelungen, nun möchte ich ein solches Verzeichnis auch wieder komplett herunterladen (Also rekursiv mit allen Unterverzeichnissen und Dateien darin.)
Ich habe versucht, den Code welcher unter
http://www.mofeel.net/1279-borland-p...sock/3373.aspx zu finden ist, zu verstehen und zu korrigieren (Weil er nicht korrekt läuft).
Delphi-Quellcode:
procedure TForm1.DownloadFolder(AFTP: TIdFtp; ARemotePath, ALocalPath:string);
var
I: Integer;
begin
AFTP.ChangeDir(APath);
ALocalPath := IncludeTrailingPathDelimiter(ALocalPath);
ForceDirectories(ALocalPath)
if ARemotePath[Length(ARemotePath)] <> '/' then ARemotePath := ARemotePath +'/';
{ Get the directory listing }
try
AFTP.List;
except
end;
{ Download files }
for I:=0 to Pred(AFTP.DirectoryListing.Count) do
if AFTP.DirectoryListing[i].ItemType = ditFile then
AFTP.Get(ARemotePath + AFTP.DirectoryListing[i].FileName, ALocalPath +AFTP.DirectoryListing[i].FileName);
{ Explore subfolders }
for I:=0 to Pred(AFTP.DirectoryListing.Count) do
if AFTP.DirectoryListing[i].ItemType = ditFolder then
begin
{ Call DownloadFolder recursively }
DownloadFolder(AFTP, ARemotePath + AFTP.DirectoryListing[i].FileName,ALocalPath + AFTP.DirectoryListing[i].FileName);
{ Re-set old directory as current directory }
AFTP.ChangeDir(ARemotePath);
end;
end;
Im Moment erhalte ich dasselbe Ergebnis wie der TopicStarter dieses Eintrages, nämlich:
ftpserver.com/download/../../../../../../../../../
Komischerweise wird bei jedem Durchgang einfach das nächste RemoteDir ans bisherige angehängt.
Ich habe jeweils schon versucht, nach jedem Subfolder wieder ein Verzeichnis hochzugehen, um nicht diese Endlosschlaufe zu erzeugen.
Hat jemand eine andere Prozedur, mit welcher ich ein komplettes Verzeichnis von einem
FTP-Server herunterladen kann?
Gruss