Apache NET ftp listFiles可以工作,但listFiles(字符串路径名)不能工作

Apache NET ftp listFiles可以工作,但listFiles(字符串路径名)不能工作,ftp,spring-integration,apache-commons-net,Ftp,Spring Integration,Apache Commons Net,背景 我正在开发一个应用程序,它使用spring集成通过ftp检索文件。我使用的是spring集成的ftp入站适配器之一。然而,即使在我反复尝试之后,我仍然无法让它工作。所以我开始查看代码,发现在包装下它使用了ApacheCommonsNetAPI 问题 使用ApacheCommonsNetLibrary,我以同样的方式在本地编写代码,但它不起作用。这是密码- FTPClient client = new FTPClient(); client.connect("x.x.x.x", 21); c

背景

我正在开发一个应用程序,它使用spring集成通过ftp检索文件。我使用的是spring集成的ftp入站适配器之一。然而,即使在我反复尝试之后,我仍然无法让它工作。所以我开始查看代码,发现在包装下它使用了ApacheCommonsNetAPI

问题

使用ApacheCommonsNetLibrary,我以同样的方式在本地编写代码,但它不起作用。这是密码-

FTPClient client = new FTPClient();
client.connect("x.x.x.x", 21);
client.enterLocalPassiveMode();
client.login("xxx", "xxx");
FTPFile[] files = client.listFiles("/AMNH");
这将返回0行。这就是spring集成执行call-client.listFiles(“/AMNH”)的方式。因此,返回的文件列表为0,即使我在ftp位置有文件,整个应用程序都处于空闲状态

但是,如果我运行以下代码,我就能够检索文件。我想知道当我们传递参数时,listFiles方法有什么问题,我们如何解决这个问题?我这样说是因为我没有不执行listFiles(字符串路径名)的特权


请查看有关
changeWorkingDirectory
的信息。您只需要扩展
DefaultFTPSSessionFactory
并实现
postProcessClientAfterConnect()
回调。

那里的remoteDirectory属性不是出于同样的目的吗?我可以延长。但是有必要吗?似乎从4.3开始,remoteDirectory就被弃用了。啊。。浪费了很多时间!非常感谢..这里的问题不是关于远程目录属性,而是您的FTP不允许列出非工作目录根目录下的文件。请向我们显示两种情况下的日志文件。
FTPClient client = new FTPClient();
client.connect("x.x.x.x", 21);
client.enterLocalPassiveMode();
client.login("xxx", "xxx");
client.changeWorkingDirectory("/AMNH");
FTPFile[] files = client.listFiles("");