FTPClient.listFiles无法正常工作

时间:2013-04-03 14:24:36

标签: java ftp apache-commons ftp-client ftplib

我正在尝试列出ftp服务器中特定目录下的所有文件。

FTPFile[] subFiles = ftpClient.listFiles("directory");

虽然目录是有效的,但是在调用listFiles时代码卡住了,可能是原因。 ?此外,我想提一下,访问同一个FTP服务器的单独netbeans项目使用相同的代码工作正常,但是maven项目遇到了问题。 请帮忙。

2 个答案:

答案 0 :(得分:7)

尝试使用passive mode。我假设您使用的是最新的commons net库(您没有编写您正在使用的库)。


接下来的方法,尝试更改文件列表布局。公共库lib使用自动检测,但在某些情况下,这不起作用。您可以更改(并测试)另一个文件列表布局,如下所示:

FTPClientConfig configuration = new FTPClientConfig(FTPClientConfig.TEST_YOURSELF);

FTPClient yourClient = FTPClient(...);
client.configure(conf);

答案 1 :(得分:0)

要添加到上述答案中,应在connect()之后和login()之前调用enterLocalPassiveMode()方法。我无法通过其他任何方式来工作。此测试基于此处指定的另一个答案:https://stackoverflow.com/a/5183296/11971304

            client.connect(host, port);
            client.enterLocalPassiveMode();
            if (!client.login(username, password)) {
                throw new LoginException("wrong credentials");
            }