Кидаешь на форму TIDFTP, пишем простой код, в котором пытаемся посмотреть что за файлы лежат в нужной директории, например такой:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
I: integer;
begin
If IdFTP.Connected then
Begin
IdFTP.Abort;
IdFTP.Quit;
End;
IdFTP.Host := 'host';
IdFTP.Port := 21;
IdFTP.Username := 'login';
IdFTP.Password := 'password';
IdFTP.Passive:=False;
IdFTP.Connect;
If IdFTP.Connected then
begin
mmLog.Lines.Add('connected');
IdFTP.ChangeDir('/dir');
IdFTP.List;
mmLog.Lines.Add('Файлов: '+IntToStr(IdFTP.DirectoryListing.Count));
for I := 0 to idFtp.DirectoryListing.Count - 1 do
mmLog.Lines.Add(IntToStr(I)+':'+idFtp.DirectoryListing[I].FileName);
IdFTP.Quit;
end
else
showmessage('ошибка подключения');
end;
И ничего не видим :( С ошибкой не вылетает, и результат нулевой.
А дело вот в чем: в Indy начиная с 10й версии необходимо в uses ручками прописывать парсер:
IdFTPListParseUnix - для сервера на Unix/Linux и пр.
IdFTPListParseWindowsNT - для сервера на Windows
IdAllFTPListParsers - а это если для поддержки обоих типов.
После чего все начинает замечательно работать. :)
PS. Что-то блоггер косячит с форматированием...
Комментариев нет:
Отправить комментарий