您的位置:首页 > 编程语言 > Delphi

Delphi7 中利用Indy的TidFtp客户端控件实现在服务器指定目录下下载需要的文件

2006-07-13 14:40 951 查看
根据实际的开发需求,需要在服务器端下载指定的文件到本地电脑,因为不像普通的FTP软件,不需要界面,客户只需要点击一个按钮,就可以实现文件下载到本地,然后由程序自动处理,并入库,然后生成客户所需要的报表,就是客户所要求的全傻瓜型程序.

主要代码片断如下,这里主要就是说下思路,实现基本功能,然后供那些对Indy组件不是很熟悉的朋友熟悉下用法:

procedure TForm1.btn3Click(Sender: TObject);
var
i,j:Integer;
ls:TStringList;
fname:string;
begin
adoTBFtp.Close;
adoTBFtp.Open;
while not adoTBFtp.Eof do
begin
IdFtp1.Host:= adoTBFtp.fieldbyname('Ip').AsString;
IdFtp1.Username := adoTBFtp.fieldbyname('User').AsString;
IdFtp1.Password := adoTBFtp.fieldbyname('PassWord').AsString;
if not IdFtp1.Connected then
begin
try
IdFtp1.Connect;
except
on e:exception do
begin
ShowMessage(e.Message);
Exit;
end;
end;
end;

ls:=TStringList.Create;
IdFTP1.ChangeDir('/tellin/temp'); //到指定目录下 windows /;Unix /
//IdFTP1.TransferType := ftASCII;
IdFTP1.List(LS); //得到目录结构
for i:=0 to IdFtp1.DirectoryListing.Count-1 do //遍历所有目录
begin
//memo1.Lines.Add(IdFtp1.DirectoryListing.Items[i].FileName); //如果文件名和目录一样,就执行如下操作
for j:=1 to 12 do
begin
fname:='scf-0-'+intToStr(j)+'.run.old';
if IdFtp1.DirectoryListing.Items[i].FileName=fname then
begin
//传输文件get函数第一个参数是服务器上的要下载的文件名,第二个参数是本地的路径和要保存的文件名
IdFtp1.Get(fname,adoTBFtp.fieldbyname('SavePath').AsString+fname,True);
end;
end;
end;
adoTBFtp.Next;
end;
ls.Free;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐