FTP服务器文件存在性判断
2017-05-11 15:43
113 查看
在实际使用FTP文件服务器的过程中,经常需要远程下载解析文件。为提高效率,需要判断文件存在与否,有选择的进行解析。
这里对项目中的一个小片段进行备份,方便以后总结学习。
这里对项目中的一个小片段进行备份,方便以后总结学习。
import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; /** * 方法描述:检验指定路径的文件是否存在ftp服务器中 * @author guoxk * @createTime 2017年5月11日 上午11:26:44 * * @param filePath 指定绝对路径的文件 127.0.0.1:21/TEST/20161010/test_20161010.zip * @param user ftp服务器登陆用户名 username * @param passward ftp服务器登陆密码 password * @param ip ftp的IP地址 127.0.0.1 * @param port ftp的端口号 21 * @return 存在返回true,不存在返回false */ 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.enterLocalPassiveMode(); //开启本地被动模式--Linux,windowns开启主动enterLocalActiveMode // 设置文件类型为二进制,与ASCII有区别 ftp.setFileType(FTP.BINARY_FILE_TYPE); // 设置编码格式 ftp.setControlEncoding("GBK"); // 提取绝对地址的目录以及文件名 filePath = filePath.replace(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) { //logger.error(e.getMessage()); } finally { if (ftp != null) { try { ftp.disconnect(); } catch (IOException e) { //logger.error(e.getMessage()); } } } return false; }
相关文章推荐
- 用PL/SQL判断一个FTP服务器上的文件是否存在
- 用commons-net ftpclient 怎么判断服务器是否存在文件A??
- js判断服务器上的文件是否存在
- 判断服务器或者硬盘中文件是否存在,并创建文件
- Java判断远程服务器上文件是否存在(跨服务器)
- 检验指定路径的文件是否存在ftp服务器中
- ajax判断远程服务器是否存在某文件
- System.IO.File.Exist(filePath)判断另外一台服务器上某个文件是否存在
- Java判断Ftp服务器目录是否存在,若不存在创建目录
- Java工具-检验ftp服务器的指定文件是否存在
- 浅谈Spring中的定时功能使用 FTP判断文件是否存在
- C# 判断服务器上文件是否存在
- asp.net如何判断服务器上的目录或文件是否存在
- js 判断服务器文件是否存在问题
- 判断服务器中文件是否存在
- js判断服务器上的文件是否存在(ajax)
- 判断ftp上文件是否存在
- C#获取FTP目录下文件夹、文件的方法,进而判断FTP下指定文件夹是否存在
- asp.net判断服务器上的目录或文件是否存在!(实例)
- C#如何判断远程目录(FTP服务器)是否存在?