ftp 实现文件的上传下载以及列出文件列表Java代码
2018-07-20 来源:open-open
public class FtpUtil { private Log log = LogFactory.getLog(getClass()) ; private String userName; private String password; private String ip; private int port; private FTPClient ftpClient = null; private FTPSClient ftps = null ; //构造方法初始化类 public FtpUtil(String userName, String password, String ip, int port) { this.userName = userName; this.password = password; this.ip = ip; this.port = port; } //连接ftp public boolean connectServer() throws Exception{ boolean flag = true; if (ftpClient == null) { ftpClient = new FTPClient(); ftpClient.connect(ip,port); log.info("Connected to " + ip); log.info(ftpClient.getReplyString()); int reply = ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftpClient.disconnect(); log.warn("FTP server refused connection."); return false ; } boolean bok = ftpClient.login(userName, password); if (!bok) { try { ftpClient.disconnect() ; ftpClient = null ; } catch (Exception e) { } throw new Exception("can not login ftp server") ; } ftpClient.setBufferSize(1024); ftpClient.setControlEncoding("GBK"); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); ftpClient.setDataTimeout(120000); ftpClient.enterLocalPassiveMode(); ftpClient.setUseEPSVwithIPv4(false); } return flag; } //列出所有文件内容 public List<String> listRemoteAllFiles(String path) throws Exception { ftpClient.enterLocalPassiveMode(); FTPFile[] files = ftpClient.listFiles(path, new FTPFileFilter() { @Override public boolean accept(FTPFile file) { if (file.isFile()) return true ; return false ; }}) ; List<String> list = new ArrayList() ; for (FTPFile file : files) { list.add(file.getName()) ; } return list ; } public void closeConnect() { try { if (ftpClient != null) { ftpClient.logout(); ftpClient.disconnect(); } } catch (Exception e) { } } //下载文件 public boolean downloadFile(String remotePath, String fileName, String localPath) throws Exception { FileOutputStream fos = null ; try { File localFile = new File(localPath, fileName); fos = new FileOutputStream(localFile); ftpClient.enterLocalPassiveMode(); ftpClient.changeWorkingDirectory(remotePath) ; boolean bok = ftpClient.retrieveFile(fileName, fos); fos.close() ; fos = null ; return bok ; } catch (Exception e) { throw e ; } finally { if (fos!=null) { try { fos.close() ; fos = null ; } catch (Exception e2) { } } } } //上传文件 public boolean uploadFile(String remotePath, String filename, String localFilePath) throws Exception { FileInputStream fis = null ; try { fis = new FileInputStream(new File(localFilePath)); ftpClient.enterLocalPassiveMode(); ftpClient.changeWorkingDirectory(remotePath); boolean bok = ftpClient.storeFile(filename, fis); fis.close(); fis = null ; return bok ; } catch (Exception e) { throw e ; } finally { if (fis!=null) { try { fis.close() ; fis = null ; } catch (Exception e2) { } } } } //删除文件 public boolean removeFile(String remotePath, String filename) throws Exception { ftpClient.changeWorkingDirectory(remotePath); boolean bok = ftpClient.deleteFile(filename) ; return bok ; } }
标签: isp
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐