Java ftp.listFiles () получить пустой массив - PullRequest
0 голосов
/ 01 марта 2012

я получаю пустой массив из ftp.listFiles ().Я попробовал что-то.Если я переключаю Тип в пассивный режим, я получаю ту же ошибку, Массив пуст.Если я запускаю код на другой машине, проблема остается той же.Если я использую Windows FTP-клиент (LeechFtp или WIndows Command Line), я могу просмотреть список каталогов.Если я запускаю код без команды changeWorkingDirectory, я получу список файлов из корня ftp, но не получу список из подкаталогов.

ftp = new FTPClient();
ftp.setDefaultPort(21);
ftp.connect("ftp.myftpsite.com");
ftp.enterLocalPassiveMode();
ftp.login("username", "password");
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.changeWorkingDirectory("pub/inbound");
FTPFile[] files = ftp.listFiles();
System.out.println(files.length);

ftp.changeWorkingDirectory возвращает TRUE.

1 Ответ

0 голосов
/ 01 марта 2012

Если:

  1. вы используете старую (до 1.5) версию Apache Commons Net;
  2. файлы, которые вы не можете просмотреть, имеют вчерашнюю отметку времени (29 февраля);

тогда вы, вероятно, сталкиваетесь с этой ошибкой: FTPClient#listFiles возвращает нулевой элемент, когда временная метка файла "02/29" .

Обновление Commons Net должно устранить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...