@SHAKIRA

Почему нельзя запустить эту функцию отправки файлов на FTP написную на Delphi?

procedure FTPUpload();
var IdFTP:TIdFtp;
   dn:integer;
   F: TSearchRec;
    ftpset:TstringList;
      ftphost, ftpport, ftplogin, ftppassword, ftpdir: String;
begin
ftpset:=TStringList.Create;
   ftpset.LoadFromFile(dir+'/ftp.txt');
 ftphost:=Copy(ftpset[0], 6, length(ftpset[0]));
 ftpport:=Copy(ftpset[1], 6, length(ftpset[1]));
 ftplogin:=Copy(ftpset[2], 7, length(ftpset[2]));
  ftppassword:=Copy(ftpset[3], 10, length(ftpset[3]));
   ftpdir:=Copy(ftpset[4], 11, length(ftpset[4]));
   Form1.Label1.Caption:= 'Зарузка файлов на FTP сервер...';
 try
   IdFTP:=TIdFTP.Create(nil);
   if IdFTP.Connected then
     begin
      IdFTP.Abort;
      IdFTP.Quit;
     end;
   IdFTP.Username := ftplogin;
   IdFTP.Password := ftppassword;
   IdFTP.Host := ftphost;
   try
      IdFTP.Connect;
      if IdFTP.Connected then
        begin
         IdFTP.ChangeDir(ftpdir);
         chdir(dir+'\acestream');
         dn := FindFirst('*.*',faArchive,F);
         while dn = 0 do

           begin
             IdFTP.Put(dir+'\acestream\'+f.name,f.name, True);
             dn := FindNext(F);

           end;
         //IdFTP.Quit;
        end;
      Form1.Label1.Caption:= 'Зарузка файлов на FTP сервер...';
   except
      ShowMessage('Ошибка отправки.');
   end;
 finally
   IdFTP.Free;
 end;

end;

Я ее запускаю по таймеру. Но сработав 1 раз она не хочет работать. Пробовал добовлять idFTP.Disconnect; но ничего не дает. Останавливается в районе

if IdFTP.Connected then
     begin
      IdFTP.Abort;
      IdFTP.Quit;
     end;

Но если убрать это, то ничего не изменится. Как это исправить? За ранее благодарю.
  • Вопрос задан
  • 2479 просмотров
Пригласить эксперта
Ответы на вопрос 1
@AlexP11223
А в чем смысл проверять Connected и пытаться завершить его у свежесозданного объекта?

Как именно не работает-то? Exception? Какой?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы