Apache Commons FTPClient.listFiles

Я использую 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();

20
задан Shyam 26 February 2010 в 06:26
поделиться

3 ответа

Просто глупое предложение ... не могли бы вы сделать список в папке / uploads с помощью обычного FTP-клиента. Я спрашиваю об этом, потому что некоторые FTP-серверы настроены так, чтобы не отображать список загружаемых папок.

1
ответ дан 30 November 2019 в 00:43
поделиться

После того, как я установил режим как PASV, теперь все работает нормально! Спасибо за все ваши усилия и предложения!

6
ответ дан 30 November 2019 в 00:43
поделиться

Во-первых, убедитесь, что список работает в других программах. Если это так, одна из возможных причин состоит в том, что список файлов не анализируется правильно. Вы можете попробовать явно указать синтаксический анализатор для использования с initiateListParsing .

1
ответ дан 30 November 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: