Вам, вероятно, нужно явно перечислить каталог и загрузить каждый файл внутри, который не является .
или ..
(возможно, повторяется в подкаталогах).
Итак, вы сначала отправляете запрос на перечисление каталога. Затем вы создаете (локально) массив записей, полученных по этому запросу. Затем для каждой такой записи вы отправляете запрос на загрузку файла или, если это [подкаталог], вы возвращаетесь внутрь.
И у вас всегда будут проблемы, если другой клиент вашего FTP-сервера будет добавлять или удалять файлы в этом же каталоге.
Кстати, некоторые FTP-серверы могут, например, архивировать весь каталог foo/
, если вы извлекаете foo.tar.gz
и т. д.