我正在尝试列出ftp服务器中特定目录下的所有文件。
FTPFile[] subFiles = ftpClient.listFiles("directory");
虽然目录是有效的,但是在调用listFiles时代码卡住了,可能是原因。 ?此外,我想提一下,访问同一个FTP服务器的单独netbeans项目使用相同的代码工作正常,但是maven项目遇到了问题。 请帮忙。
答案 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");
}