FTP列表文件始终返回根文件

时间:2014-02-18 17:19:45

标签: java ftp apache-commons-net

我正在使用apache.commons.net ftpClient,但我遇到的问题是我不确定如何修复。

所以基本上我登录服务器,设置被动模式,然后运行:

fileFTPFiles = this.ftpClient.listFiles(strPath);

在我连接的所有服务器中,直到今天,这就像一个魅力,但今天我连接到服务器,而不是返回文件或给路径中的文件总是返回登陆目录文件...

虽然如果我跑

fileFTPFiles = this.ftpClient.mlistDir(strPath);

它会返回我的期望。

任何人都可以解释为什么会发生这种情况,以及是否有一种简单的方法来检测是否使用listFilemlistFiles

1 个答案:

答案 0 :(得分:0)

您是否设置了本地被动模式或远程模式?我遇到了同样的问题,我在FileZilla文档中找到了一些解释:https://wiki.filezilla-project.org/Network_Configuration

这发生在我身上,因为我的ftp客户端无法绑定PORT ftp命令返回的服务器端口(在每次请求之前发送)。顺便说一下,FTPCLient.setActivePortRange(min, max);方法根本不会生效;

避免这种情况的最简单方法似乎是创建一个原始套接字来验证地址的网络绑定。