项目工作中,须要磨练ftp服务器中指定文件是不是存在,在网上查阅了相干材料,可以经由过程ftpClient类举行完成。
免费进修视频教程分享:java课程
细致完成代码:
import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; /** * 磨练指定途径的文件是不是存在ftp服务器中 * @param filePath--指定相对途径的文件 * @param user--ftp服务器上岸用户名 * @param passward--ftp服务器上岸密码 * @param ip--ftp的IP地点 * @param port--ftp的端口号 * @return */ public static boolean isFTPFileExist(String filePath,String user,String passward,String ip,int port){ FTPClient ftp = new FTPClient(); try { // 衔接ftp服务器 ftp.connect(ip, port); // 上岸 ftp.login(user, passward); // 磨练上岸操纵的返回码是不是准确 if(!FTPReply.isPositiveCompletion(ftp.getReplyCode())){ ftp.disconnect(); return false; } ftp.enterLocalActiveMode(); // 设置文件范例为二进制,与ASCII有区分 ftp.setFileType(FTP.BINARY_FILE_TYPE); // 设置编码花样 ftp.setControlEncoding("GBK"); // 提取相对地点的目次以及文件名 filePath = filePath.replace("ftp://"+ip+":"+port+"/", ""); String dir = filePath.substring(0, filePath.lastIndexOf("/")); String file = filePath.substring(filePath.lastIndexOf("/")+1); // 进入文件地点目次,注重编码花样,以可以准确辨认中文目次 ftp.changeWorkingDirectory(new String(dir.getBytes("GBK"),FTP.DEFAULT_CONTROL_ENCODING)); // 磨练文件是不是存在 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入门教程
以上就是java怎样磨练ftp服务器中指定文件是不是存在的细致内容,更多请关注ki4网别的相干文章!