您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)java檢驗(yàn)ftp服務(wù)器中文件是否存在的方法,相信大部分人都還不知道這個(gè)技巧,因此給大家總結(jié)了以下內(nèi)容,希望大家閱讀完后可以有所收獲。
項(xiàng)目工作中,需要檢驗(yàn)ftp服務(wù)器中指定文件是否存在,在網(wǎng)上查閱了相關(guān)資料,可以通過ftpClient類進(jìn)行實(shí)現(xiàn)。
具體實(shí)現(xiàn)代碼:
import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; /** * 檢驗(yàn)指定路徑的文件是否存在ftp服務(wù)器中 * @param filePath--指定絕對(duì)路徑的文件 * @param user--ftp服務(wù)器登陸用戶名 * @param passward--ftp服務(wù)器登陸密碼 * @param ip--ftp的IP地址 * @param port--ftp的端口號(hào) * @return */ public static boolean isFTPFileExist(String filePath,String user,String passward,String ip,int port){ FTPClient ftp = new FTPClient(); try { // 連接ftp服務(wù)器 ftp.connect(ip, port); // 登陸 ftp.login(user, passward); // 檢驗(yàn)登陸操作的返回碼是否正確 if(!FTPReply.isPositiveCompletion(ftp.getReplyCode())){ ftp.disconnect(); return false; } ftp.enterLocalActiveMode(); // 設(shè)置文件類型為二進(jìn)制,與ASCII有區(qū)別 ftp.setFileType(FTP.BINARY_FILE_TYPE); // 設(shè)置編碼格式 ftp.setControlEncoding("GBK"); // 提取絕對(duì)地址的目錄以及文件名 filePath = filePath.replace("ftp://"+ip+":"+port+"/", ""); String dir = filePath.substring(0, filePath.lastIndexOf("/")); String file = filePath.substring(filePath.lastIndexOf("/")+1); // 進(jìn)入文件所在目錄,注意編碼格式,以能夠正確識(shí)別中文目錄 ftp.changeWorkingDirectory(new String(dir.getBytes("GBK"),FTP.DEFAULT_CONTROL_ENCODING)); // 檢驗(yàn)文件是否存在 InputStream is = ftp.retrieveFileStream(new String(file.getBytes("GBK"),FTP.DEFAULT_CONTROL_ENCODING)); if(is == null || ftp.getReplyCode() == FTPReply.FILE_UNAVAILABLE){ return false; } if(is != null){ is.close(); ftp.completePendingCommand(); } return true; } catch (Exception e) { e.printStackTrace(); }finally{ if(ftp != null){ try { ftp.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } return false; }
以上就是java檢驗(yàn)ftp服務(wù)器中文件是否存在方法的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。