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

Java FTP列表文件始终返回根文件,java,ftp,apache-commons-net,Java,Ftp,Apache Commons Net,我正在使用apache.commons.netftpClient,但我面临一个不确定如何解决的问题 因此,基本上我登录服务器,设置被动模式,然后运行: fileFTPFiles = this.ftpClient.listFiles(strPath); 在我连接到的所有服务器中,直到今天,这就像一个符咒,但今天我连接到一个服务器,它不是返回文件或给定路径中的文件,而是始终返回登录目录文件 虽然如果我跑 fileFTPFiles = this.ftpClient.mlistDir(strPath)

我正在使用apache.commons.net
ftpClient
,但我面临一个不确定如何解决的问题

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

fileFTPFiles = this.ftpClient.listFiles(strPath);
在我连接到的所有服务器中,直到今天,这就像一个符咒,但今天我连接到一个服务器,它不是返回文件或给定路径中的文件,而是始终返回登录目录文件

虽然如果我跑

fileFTPFiles = this.ftpClient.mlistDir(strPath);
它回报了我所期望的


有谁能解释一下为什么会发生这种情况,以及是否有一种简单的方法可以检测是否使用
listFile
mlistFiles

您设置了本地被动模式还是远程模式?我也有同样的问题,我在FileZilla文档中找到了一些解释:

这种情况发生在我身上,因为我的ftp客户端无法绑定PortFTP命令返回的服务器端口(在每次请求之前发送)。顺便说一下,
FTPCLient.setActivePortRange(最小值,最大值)方法根本不起作用

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