Delphi IdFTP 全目录下载示例:
procedure TForm1.doDownload(idftp: TIdFTP; dir: string);
var
t: TIdFTPListItem;
i: integer;
fileName, foldName: string;
begin //连接
if not DirectoryExists(LOCAL_DIR + dir) then //如果本地目录不存在则创建文件夹
begin
ForceDirectories(LOCAL_DIR + dir); //创建一个全路径的文件夹
end;
idftp.changedir(dir); //改变目录
idftp.List(nil); //获取当前目录的信息
idftp.TransferType := ftBinary; //指定为二进制文件 或文本文件ftASCII
for i := 0 to idftp.DirectoryListing.Count - 1 do
begin
t := idftp.DirectoryListing.Items[i]; //得到一个文件相关信息
fileName := t.FileName; //获取文件名
if t.ItemType = ditFile then //如果是文件,则直接下载
begin
idftp.Get(fileName, LOCAL_DIR + dir + ‘\‘ + fileName, True); //下载到本地,并为覆盖
end
else if (t.ItemType = ditdirectory) then //如果是文件夹,则往下循环下载文件夹的内容
begin
foldName := t.FileName;
doDownload(idftp, dir + ‘\‘ + foldName); //递归调用,往下一层一层的循环下载子文件夹数据
idFTP.ChangeDirUp(); //返回上级目录
idFTP.List(nil);
end;
end;
end;
创建时间:2020.05.08 更新时间: