您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> ftp下载文件夹,怎么处理为好?

ftp下载文件夹,怎么处理为好?

来源:网络整理     时间:2016/8/28 22:52:44     关键词:

关于网友提出的“ ftp下载文件夹,怎么处理为好?”问题疑问,本网通过在网上对“ ftp下载文件夹,怎么处理为好?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: ftp下载文件夹,怎么处理为好?
描述:

用delphi写个ftp客户端,可以直接从ftp服务器下下载文件,对ftp服务器上的文件夹下载怎么处理,有没有代码参考?文件路径较深,谢谢!


解决方案1:

procedure Tmainform.download ;
var
  name:string;
  tt :TIdFTPListItems; //ftp列表
  t : TIdFTPListItem;  //ftp单条记录
  j,f:Integer;
  ls:TStringList ;
begin
    if idftp.Connected =False then btn1.Click;
        //idftp.ChangeDir('/Ext');
        ls := TStringList.Create;
      try
        idftp.ChangeDir('/Ext');
        idftp.ChangeDir(ip.Text);
        idftp.ChangeDir(ftp_date.Text);
        edt1.Text := IdFTP.RetrieveCurrentDir;
        idftp.List(ls);  //这句很关键啊,一个晚上就是发现该语句必须放在进入目录之后的第一件事情。
        f:=idftp.DirectoryListing.Count-1 ;
        {
        if Trim(ip.Text)='255.255.8.80' then
        begin
        ShowMessage(IntToStr(f));
        end;
              on e: Exception do
      Begin
        log4error(PChar(E.Message)+'_连接超时');
      End;
        }
      except
        on e: Exception do
        begin
        log4error(PChar(E.Message)+'_改变目录错误');
        mmo1.Lines.Add(PChar(E.Message));
        mmo1.Lines.Add(ip.Text+'_'+ftp_date.Text+'无数据');
        fun_ftplog( ip.text,ftp_date.Text,'0');
        Exit;//没有会出现list index out of bounds 错误
        f:=0;
        end;
      end;
      //IdFTP.TransferType := ftBinary;
      tt:=IdFTP.directorylisting;
      forcedirectories ('.\'+ip.text+'\'+ftp_date.Text);
      for j :=0  to f   do
      begin
        t:=tt.items[j];
        if (IdFTP.DirectoryListing.Items[j].ItemType = ditfile) and (f>0) then //如果是文件
        begin
          if Length(t.FileName)<11   then name :='data.txt'
          else name:=t.FileName;
          try
           IdFTP.Get(t.FileName ,ip.text+'\'+ftp_date.Text+'\'+name,True,False);
          except
              on e: Exception do
              Begin
                mmo1.Lines.Add(PChar(E.Message)+name);
                log4error(PChar(E.Message)+'_下载失败');
                mmo1.Lines.Add(name+'_'+'下载失败');
              End;
        end;
      end;
    //mmo1.Lines.Add(ip.text+'_'+ftp_date.Text+'下载完毕');
    mmo2.Lines.Add(ip.text+'_'+ftp_date.Text+'='+inttostr(f)+'下载完毕');
    fun_ftplog( ip.text,ftp_date.Text,inttostr(f));
    idftp.ChangeDir('../');
    idftp.ChangeDir('../');
    idftp.ChangeDir('../');
end;
end;

以上介绍了“ ftp下载文件夹,怎么处理为好?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3641723.html

相关图片

相关文章