Я использую org.apache.commons.net.ftp.FTPClient
в одном из моих приложений для работы с FTP-сервером. Я в состоянии connect
, login
, pwd
и cwd
. Однако, когда я пытаюсь list
файлы это не возвращает список файлов в том каталоге, где я знаю наверняка, что существуют файлы. Я использую метод FTPFile[] listFiles()
, это возвращает пустой массив FTPFile
.
См. ниже фрагмент кода, где я пробую это:
String hostname = properties.getProperty("FTP_SERVER");
String user = properties.getProperty("FTP_USER");
String passwd = properties.getProperty("FTP_PASSWD");
FTPClient client = new FTPClient();
client.connect(hostname);
client.login(user, passwd);
String reply = client.getStatus();
System.out.println(reply);
client.enterRemotePassiveMode();
client.changeWorkingDirectory("/uploads");
FTPFile[] files = client.listFiles();
System.out.println(files.length);
for (FTPFile file : files) {
System.out.println(file.getName());
}
String[] fileNames = client.listNames();
if (fileNames != null) {
for (String file : fileNames) {
System.out.println(file);
}
}
client.disconnect();
Просто глупое предложение ... не могли бы вы сделать список в папке / uploads с помощью обычного FTP-клиента. Я спрашиваю об этом, потому что некоторые FTP-серверы настроены так, чтобы не отображать список загружаемых папок.
После того, как я установил режим как PASV
, теперь все работает нормально!
Спасибо за все ваши усилия и предложения!
Во-первых, убедитесь, что список работает в других программах. Если это так, одна из возможных причин состоит в том, что список файлов не анализируется правильно. Вы можете попробовать явно указать синтаксический анализатор для использования с initiateListParsing .