edtftpj.jar实现FTP功能

公司采用edtftpj.jar实现FTP功能,并封装了一部分方法,例如几种上传下载的模式,其他操作还是得自己写。本文主要记录目录相关的三个方法。

  1. 创建目录
    创建目录,有一个条件:目录不存在
    /**
     * Description: 创建目录 
* * @author xxx
* @taskId
* @param ftpIp
* @param userName
* @param password
* @param fileDir
*/ public void createFtpDir(String ftpIp, String userName, String password, String fileDir) { FileTransferClient ftp = new FileTransferClient(); try { ftp.setRemoteHost(ftpIp); ftp.setUserName(userName); ftp.setPassword(password); ftp.connect(); // 判断目录是否存在 if (!checkDirExist(ftp, fileDir)) { ftp.createDirectory(fileDir); } } catch (Exception e) { logger.error(e); } finally { try { ftp.disconnect(); } catch (Exception e) { logger.error(e); } } }
  1. 删除目录
    删除目录,有两个条件:
  • 目录存在
  • 目录下无文件
    /**
     * Description: 删除目录 
* * @author xxx
* @taskId
* @param ftpIp
* @param userName
* @param password
* @param fileDir
*/ public void deleteFtpDir(String ftpIp, String userName, String password, String fileDir) { FileTransferClient ftp = new FileTransferClient(); try { ftp.setRemoteHost(ftpIp); ftp.setUserName(userName); ftp.setPassword(password); ftp.connect(); // 判断目录是否存在 if (checkDirExist(ftp, fileDir)) { ftp.changeDirectory(fileDir); // 删除所有文件 再删除目录 String[] list = ftp.directoryNameList(); for (int i = 0; i < list.length; i++) { String remoteFileName = list[i]; ftp.deleteFile(remoteFileName); } ftp.deleteDirectory(fileDir); } } catch (Exception e) { logger.error(e); } finally { try { ftp.disconnect(); } catch (Exception e) { logger.error(e); } } }
  1. 检查文件是否存在
    /**
     * Description: 检查文件是否存在
* * @author xxx
* @taskId
* @param ftp
* @param fileDir
* @return
*/ public boolean checkDirExist(FileTransferClient ftp, String fileDir) { boolean isExist = false; int index = fileDir.lastIndexOf("/"); String offerCode = fileDir.substring(index + 1); String PFileDir = fileDir.substring(0, index + 1); FTPFile[] files = null; try { ftp.changeDirectory(PFileDir); files = ftp.directoryList(); } catch (FTPException e) { logger.error(e); } catch (IOException e) { logger.error(e); } catch (ParseException e) { logger.error(e); } for (FTPFile ftpFile : files) { if (offerCode.equals(ftpFile.getName())) { isExist = true; break; } } return isExist; }

本文主要意图在于纠正原本代码用 ftp.directoryList(fileDir).length != 0来判断目录是否存在的不严谨


你可能感兴趣的:(edtftpj.jar实现FTP功能)