Почему файлы иногда другого размера или повреждены после передачи по FTP?

У меня проблема с загрузкой файла с использованием компонента TidFTP в Delphi XE2. Я могу установить соединение с FTP-сайтом, получить список файлов и выполнить команду get. Однако, когда я пытаюсь загрузить файл с помощью команды get, файл всегда загружается больше исходного файла. Тогда последующий файл поврежден.

Кроме того, если я пытаюсь загрузить несколько файлов, первый файл загружается (больше исходного), а остальные файлы пропускаются. Из команды get не выдается никакой ошибки, она просто завершается. Я попытался подключиться к некоторым событиям в элементе управления TidFTP, таким как AfterGet и OnStatus, но все выглядит нормально.

Я попытался использовать сторонний FTP-клиент для доступа к файлу и его загрузки, просто чтобы убедиться, что это не проблема с нашим FTP-сервером, и эта загрузка работала, как и ожидалось. Поэтому я думаю, что это может быть связано с контролем TidFTP или, возможно, я делаю что-то неправильно.

Вот процедура, которую я использую для загрузки файла:

var
  ftp: TIdFTP;
  strDirectory: string;
begin
  ftp := TIdFTP.Create(nil);
  try
    ftp.Host := 'ftp.myftpserver.com'
    ftp.Passive := false;
    ftp.Username := 'TestUser';
    ftp.Password := 'TestPassword';
    ftp.ConnectTimeout := 1000;
    ftp.Connect();
    ftp.BeginWork(wmRead);
    ftp.ChangeDir('/TestArea/');
    strDirectory := 'c:\test\';
    if not DirectoryExists(strDirectory) then
      CreateDir(strDirectory);
    ftp.Get('Test.zip', strDirectory + '\' + 'Test.zip', true, false);
   ftp.Disconnect();
  except
    on e: exception do
      showMessage(e.message);
  end;
end;

Ответы на вопрос(1)

Ваш ответ на вопрос