Автор Иван Чуркин задал вопрос в разделе Другие языки и технологии
Delphi и FTP и получил лучший ответ
Ответ от Капитан Очевидность[гуру]
Lst:= TStringList.Create;//Список файлов и папок.
Tmp:= TStringList.Create;//Временный список
idFtp1.List(Tmp, '', false);//Получаем список папок в корневом каталоге.. .
Lst.AddStrings(Tmp);//переписываем из временного списка в наш список.. .
count:= 0;//Начальная позиция сканирования
LstCount:= Lst.Count;//конечная позиция сканирования
For n:= 0 to 1 do //Глубина сканирования.. .
begin
For i:= count to LstCount-1 do//Сканируем часть списка.. .
begin
try
idFtp1.List(Tmp, Lst.Strings+'/', FALSE);//пытаемся получить список вложенных файлов.
application.ProcessMessages;
except continue//Не пустили - идем дальше.. .
end;
Lst.AddStrings(Tmp);//Приписали в список файлов все найденные файлы.. .
end;
count:= LstCount;//Запомнили новую начальную. .
LstCount:= Lst.Count;//...и конечную позиции.. .
end;//После чего сканим следующий кусок.. .
for nn:=0 to lst.Count-1 do listbox1.Items.add(lst.Strings[nn]);