首先是在本机上建立一个FTP服务器,方法参考【百度经验-Windows7上开启ftp服务器功能】http://jingyan.baidu.com/article/f54ae2fc3521d51e92b849c7.html。
我的本机地址是172.20.16.76,端口号9500,FTP用户名“lyc",密码"123456"
下载到本地的目录是:E:\delphi7Project\ftpDownload\
const
LOCALHOST='172.20.16.76'; //FTP服务器地址
PORT=9500; //FTP服务器端口号9500
FTP_USERNAME='lyc'; //FTP服务器用户名
FTP_PASSWORD='123456'; //FTP服务器密码
LOCAL_DIR='E:\delphi7Project\ftpDownload\'; //下载到本地的目录
实现全目录下载的核心就是递归调用下载函数,往下一层层的下载子文件夹的数据
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; //获取文件名