2014-02-18 27 views
0

我正在使用apache.commons.netftpClient但我遇到一个问题,我不知道如何解决。FTP列表文件总是返回根文件

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

fileFTPFiles = this.ftpClient.listFiles(strPath); 

在我已经连接到今天的所有服务器,这个工作就像一个魅力,但今天我连接到是不是该文件或文件返回在给定的路径总是返回着陆目录中的文件服务器...

虽然我办

fileFTPFiles = this.ftpClient.mlistDir(strPath); 

返回WH我期望。

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

回答

0

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

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

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