7

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

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

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

4

2 回答 2

11

尝试使用passive mode. 我假设您使用的是最新的公共网络库(您没有编写您正在使用的库)。


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

FTPClientConfig configuration = new FTPClientConfig(FTPClientConfig.TEST_YOURSELF);

FTPClient yourClient = FTPClient(...);
client.configure(conf);
于 2013-04-03T14:56:39.967 回答
2

要添加到上述答案,应在 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");
            }

于 2020-05-12T23:56:54.807 回答