2014-02-18 91 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);方法根本不起作用;

避免這種情況的最簡單方法似乎是創建一個原始套接字來驗證地址處的網絡綁定。