2014-02-19 179 views
2

我正在使用apache.commons.net.FTPClient從客戶那裏獲取一些文件,但是我發現有一個ftpserver並不像它應該那樣處理命令列表,因爲它總是返回當前目錄而不是我指出的那個。檢查FTP服務器是否支持MLSD

我發現mlistFile(MLSD)在該機器上效果很好!

我的問題是: 有沒有什麼辦法找出apache.commons.net如果我應該使用MLDS或LIST commnad?

任何國旗或類似的東西?

感謝

+0

您可以發送mlsd命令並檢查回覆代碼。如果你得到一個202代碼嘗試列表。 (見代碼在這裏:http://en.wikipedia.org/wiki/List_of_FTP_server_return_codes) – StephaneM

+0

是不是有一個更優雅的方式來做到這一點? – Killercode

回答

2

這裏是我發現了什麼(也許太晚了?):你可以調用FTPClient對象的功能listHelp()來獲取遠程服務器可以識別的命令。你得到一個輸出如

214-The following commands are recognized. 
ABOR ACCT ALLO APPE CDUP CWD DELE EPRT EPSV FEAT HELP LIST MDTM MKD 
MODE NLST NOOP OPTS PASS PASV PORT PWD QUIT REIN REST RETR RMD RNFR 
RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD 
XPWD XRMD 

你只需要檢查MLSD是否在列表中。