RAD Studio ( IdFTP
) で FTP クライアントを開発しています。サーバーからディレクトリをダウンロードするにはどうすればよいですか? Delphi または C++。ありがとう。
質問する
13101 次
2 に答える
9
を呼び出しTIdFTP.ChangeDir()
て目的の開始ディレクトリに移動し、 を呼び出しTIdFTP.List()
てそのファイルとサブディレクトリの名前を取得し、次に を呼び出して各ファイル名のTIdFTP.DirectoryListing
呼び出しをループし、TIdFTP.Get()
各サブディレクトリ名を独自のローカル リストに格納し、最後に上記の手順を繰り返す必要があります。ローカル リストの各サブディレクトリ。
例えば:
Procedure DownloadFolder(ARemoteFolder, ALocalFolder: string);
Var
SubFolders: TStringList;
I: Integer;
Begin
ALocalFolder := IncludeTrailingPathDelimiter(ALocalFolder);
ForceDirectories(ALocalFolder);
SubFolders := TStringList.Create;
Try
FTP.ChangeDir(ARemoteFolder);
FTP.List;
For I := 0 to FTP.DirectoryListing.Count-1 do
Begin
If FTP.DirectoryListing[I].ItemType = ditFile then
Begin
FTP.Get(FTP.DirectoryListing[I].FileName, ALocalFolder + FTP.DirectoryListing[I].FileName);
End
Else if FTP.DirectoryListing[I].ItemType = ditDirectory then
Begin
if (FTP.DirectoryListing[I].FileName <> '.') and FTP.DirectoryListing[I].FileName <> '..') then
SubFolders.Add(FTP.DirectoryListing[I].FileName);
End;
End;
For I := 0 to SubFolders.Count-1 do
Begin
DownloadFolder(ARemoteFolder + '/' + SubFolders[I], ALocalFolder + SubFolders[I]);
End;
Finally
SubFolders.Free;
End;
End;
DownloadFolder('/StartingDir', 'C:\Downloaded');
于 2014-04-18T16:24:59.513 に答える