2016-12-24 46 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不允許列出不是來自工作目錄根目錄的文件 –