FTPlist @приемник_списка_директорий , @приемник_списка_файлов , @приемник_списка_длин_файлов , @имя_интересущего_файла_или_каталога(если пуст, то список всех)
Смена рабочего каталога на сервере.Модифицирует регистр $F:
$F=0 Успешно
$F=1 Управляющее соединение потеряно или не соединено с сервером
$F=2 Нет такого каталога или файла на сервере
Исключения при выполнении:
Примечание:
Потеря управляющего соединения равноценна выполненной команде FTPdisconnect выполнение FTP команд после этого невозможно и требуется соединиться вновь (FTPconnect).
Если в качестве @имя_интересущего_файла_или_каталога указана пустая строка, то получает список всех файлов и каталогов, находящихся в рабочем каталоге, например:
FTPlist @1, @2, @3, ""Для получения сведений о конкретном файле (что может потребоваться, когда рабочий каталог содержит много файлов и загрузка всего списка длительна), допустимо указывать имя файла или каталога, на который необходимо получить информацию, например:
FTPlist @1, @2, @3, "index.htm"Если в качестве объекта, на который требуется получить информацию, указан не файл, а каталог на сервере, то команда получает список содержимого каталога.
Для проверки каталога на наличие, лучше применять команду FTPcwd, так как в этом случае не происходит передачи лишней информации, например:
FTPcwd "info" Jmp=N $F, 0, YDIR Jmp=N $F, 1, NOCONNECT Jmp $F, 2, NDIR YDIR FTPcwd ".." NDIRОбратите внимание, длины файлов команда получает в текстовом виде, разделяя их между собой нулевым байтом ("\00").
Если представить строки в приёмнике имён файлов и приёмнике длин файлов как последовательности элементов, то файлу под номером элемента 1 будет соответствовать значение длины под номером элемента 1, что демонстрирует следующий пример:
; FACE="","11" ; @u0=E, "FTP сервер:" ; @u1=E, "Пользователь:" ; @u2=E, "Пароль:" ; @u3=E, "Имя директории:" Cls ; соединяемся с сервером PrintT 0,0,"FTPconnect" FTPconnect @u0, 21, @u1, @u2 PrintN 0,20,$F Jmp!=N $F,0,EXIT ; получаем список файлов и каталогов из каталога по умолчанию PrintT 0,0,"FTPlist" FTPlist @0, @1, @2, "" PrintN 0,20,$F ; получаем имя файла 0 в списке GetEl @9, @1, "\00", 0 ; выводим имя файла в консоль PrintT 1,0,@9 ; получаем длину файла 0 в списке GetEl @9, @2, "\00", 0 ; выводим длину файла в консоль PrintT 1,20,@9 ; получаем имя файла 1 в списке GetEl @9, @1, "\00", 1 ; выводим имя файла в консоль PrintT 2,0,@9 ; получаем длину файла 1 в списке GetEl @9, @2, "\00", 1 ; выводим длину файла в консоль PrintT 2,20,@9 ; закрываем соединение с сервером PrintT 0,0,"FTPdisconnect " FTPdisconnect
Источник информации: сайт разработчика языка HTP