2016-12-24 103 views
0

背景阿帕奇NET FTP listFiles的作品,但listFiles(字符串pathname)按不工作

我的工作,它采用弹簧集成通过FTP来检索文件的应用程序。我正在使用弹簧集成的ftp入站适配器。然而,即使经过多次尝试,我仍然无法使其工作。所以我开始寻找代码,发现它使用apache commons net api。

问题

使用Apache公地网库,我以同样的方式在本地编写的代码,它不能正常工作。这里的代码 -

FTPClient client = new FTPClient(); 
client.connect("x.x.x.x", 21); 
client.enterLocalPassiveMode(); 
client.login("xxx", "xxx"); 
FTPFile[] files = client.listFiles("/AMNH"); 

这会返回我0行。这就是spring-integration如何执行call - client.listFiles(“/ AMNH”)。所以返回的文件列表是0,即使我在ftp位置有文件,整个应用程序仍处于闲置状态。

但是,如果我运行下面的代码,我能够检索文件。当我们传递参数时,我想知道方法listFiles有什么问题,我们该如何解决它?我这样说是因为我没有不执行listFiles的奢侈品(字符串pathname)按

FTPClient client = new FTPClient(); 
client.connect("x.x.x.x", 21); 
client.enterLocalPassiveMode(); 
client.login("xxx", "xxx"); 
client.changeWorkingDirectory("/AMNH"); 
FTPFile[] files = client.listFiles(""); 
+0

向我们展示这两种情况的日志文件。 –

回答

0

请看看到Reference Manual关于changeWorkingDirectory。您只需要扩展DefaultFtpSessionFactory并执行postProcessClientAfterConnect()回调。

+0

是不是remoteDirectory属性出于同样的目的?我可以延长。但是有需要吗? – user3276247

+0

似乎remoteDirectory从4.3开始已被弃用。啊..很多时间都浪费了! – user3276247

+0

这里的问题不是关于远程目录属性,而是因为你的FTP不允许列出不是来自工作目录根目录的文件 –