使用Delphi XE从FTP服务器下载目录

问题描述 投票:-2回答:1

我使用了this codes,但有时会收到““ xxx.xxx”无法理解“的错误消息。它不会下载,并且比我要的是“无法建立数据连接:连接超时”消息。

我的连接超时设置为240000。

我该怎么办?你能帮我吗?我正在使用Delphi XE。

祝你有美好的一天。

delphi ftp
1个回答
1
投票

最好包含您自己的代码来解决您的问题。但是,要下载我的文件,我将文件或文件夹压缩到服务器上,然后在客户端中收到以下代码:

var
  STListZip: TStringList;
  SZipDown: String;
  fFtp:TIdFTP;
begin
  fFtp := TIdFTP.Create(nil);

  fFtp.Passive := true;
  fFtp.Host := 'myserver.com';
  fFtp.Username := 'u1';
  fFtp.Password := '1';
  fFtp.port:='21';
  fFtp.ConnectTimeout := 20000;
  fFtp.TransferTimeout := 20000;
  try
    fFtp.Connect;
    fFtp.ChangeDir('');
  except
    on E: Exception do
    begin
      ShowMessage('ERROR ftp not connect');
      Exit;
    end;
  end;

  if fFtp.Connected then
  begin
    STListZip := TStringList.Create;
    fFtp.List(STListZip, 'abc.zip', false);
    if STListZip.Count < 1 then
    begin
      ShowMessage('ERROR file not exist');
      Exit;
    end;
    STListZip.Sort;
    SZipDown := STListZip[STListZip.Count - 1];
    try
        fftp.BeginWork(wmRead);
        fftp.Get(SZipDown, 'd:\', true, fftp.ResumeSupported);
        fftp.Disconnect();
        fftp.EndWork(wmRead);
    except
        on E: Exception do
        begin
          ShowMessage('ERROR File not download');
          Exit;
        end;
    end;
  end;
end;

注意:您可以将abc.zip代替*.zip以获取所有zip文件名。

© www.soinside.com 2019 - 2024. All rights reserved.