使用Indy9.0版本  IdFtp1.Get(FRemoteStr,FLocalStr,True);下载小文件没事,
超过10M的文件都下不下来,程序假死
用DELPHI里的DEMO试过也是同样的情况
开始以为是服务器不稳定,用FileZilla试过,FTP服务器没问题

解决方案 »

  1.   

    假死是因为速度太慢的原因吧
    显示进度是个办法
    可以在onwork或onstatus中写
      

  2.   


      IdFtp1.Host:=127.0.0.1';
      IdFtp1.UserName:='FTP';
      IdFtp1.Password:='123456';
      IdFtp1.Port:=21;
      IdFtp1.Connect(True);
      Count:=IdFtp1.Size('\Temp\Temp.exe');
      Counter:=Round(Count/1024000)+1;
      Counter1:=0;
      while Counter1<=Counter do
      begin
        if  not IdFtp1.Connected then IdFtp1.Connect(True);
        IdFtp1.SendCmd('Reset '+IntToStr(Counter1*1024000));
        IdFtp1.Get('\Temp\Temp.exe','D:\Temp.exe'+IntToStr(Counter1),true);
        Counter1:=Counter1;
        Memo1.Lines.Add('--------------------------'+IntToStr(Counter1) );
        Application.ProcessMessages;
        sleep(1000);
      end;
      IdFtp1.Abort;不知道这样分是不是正确的,但问题同样是存在的,我的temp.exe大约是22M多,拆分成23个文件下载,但是还是只能下载10-15个左右,然后就一直死在IdFtp1.Get('\Temp\Temp.exe','D:\Temp.exe'+IntToStr(Counter1),true);  这里