Проблема со структурой ответа команды списка FTP

Я до сих пор бил головой о стену по этому вопросу. Мой сервер в настоящее время отвечает на команду LIST -a следующим образом:

drwxr-xr-x 1 owner group          1 Feb 21 04:37 test
drwxr-xr-x 1 owner group     129024 Feb 21 11:05 tardis.mp3

Почему-то второй парсится в Filezilla как папка, а не как файл. Короче говоря, это не так. Я знаю, что что-то упускаю. Filezilla не видит размер файла.

Вот снимок экрана: Снимок экрана со списком файлов

У кого-нибудь есть мысли, почему Filezilla не может проанализировать размер файла? Что мне не хватает?


person janiukjf    schedule 22.02.2013    source источник
comment
не могли бы вы опубликовать весь код ответа, пожалуйста? Filezilla сводит меня с ума.   -  person Ricardo    schedule 15.04.2014


Ответы (2)


Вторая строка в листинге это каталог. Он имеет d в первом символе поля разрешений. Размер не имеет значения, в каталогах тоже есть поле размера.

person wRAR    schedule 22.02.2013
comment
Ах ХА!! ХОРОШО. Тогда мне нужно взглянуть на строку разрешений. Я не знал, что d является маркером каталога. Это мне очень помогает. Спасибо! - person janiukjf; 22.02.2013

К сожалению, вывод команды LIST предназначен для чтения человеком, а не для машинного анализа. Выходной формат не стандартизирован, и поэтому его нелегко разобрать. Это может работать в вашем конкретном случае, но может сломаться, если вы измените программное обеспечение FTP-сервера или измените язык.

Как вы упомянули FileZilla, вы можете взглянуть на парсер каталогов FileZilla для команды LIST.

В настоящее время лучшим подходом является использование команды MLSD для списков для машинной обработки в качестве выходной формат четко определен и легко анализируется.

person Shi    schedule 20.05.2013