Загрузка каталога с FTP-сервера с Delphi XE - PullRequest
0 голосов
/ 06 марта 2020

я использовал это коды , но иногда я получаю сообщение об ошибке "xxx.xxx" не понял ". И оно не загружается, а затем я получаю сообщение «невозможно установить соединение для передачи данных: истекло время соединения».

Мой параметр ConnectionTimeOut равен 240000.

Что я могу сделать? Не могли бы вы мне помочь? Я использую Delphi XE.

Хорошего дня.

1 Ответ

1 голос
/ 12 марта 2020

Лучше всего включить собственный код для решения вашей проблемы. Но, чтобы загрузить мой файл, я заархивирую файл или папку на сервере, а затем получу следующий код в клиенте:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...