org.apache.commons.net.ftp.FTPClient上传、下载、修改文件等功能
2017-03-19 00:00
831 查看
package com.limi.ftp; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.apache.commons.net.ftp.FTPClient; public class FtpUtil { private String ip = ""; private String username = ""; private String password = ""; private int port = -1; private String directory = ""; private String srcUrl = ""; private String localUrl = ""; FTPClient ftpClient = null; private OutputStream fos = null; private FileInputStream fis = null; public FtpUtil(String serverIP, int port, String username, String password, String srcUrl,String directory,String localUrl) { this.ip = serverIP; this.username = username; this.password = password; this.port = port; this.srcUrl = srcUrl; this.directory = directory; this.localUrl = localUrl; } public boolean connectServer() { if (ftpClient == null) { ftpClient = new FTPClient(); } try { if (port != -1) { ftpClient.connect(this.ip, this.port); } boolean result = ftpClient.login(this.username, this.password); ftpClient.changeWorkingDirectory(this.directory); // 设置文件类型(二进制) ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.setBufferSize(1024); return result; } catch (Exception e) { e.printStackTrace(); } return false; } public boolean upload() { try { File srcFile = new File(this.srcUrl); fis = new FileInputStream(srcFile); ftpClient.setControlEncoding("gbk"); //存储文件==上传文件 boolean result = ftpClient.storeFile(srcFile.getName(), fis); return result; } catch (Exception e) { e.printStackTrace(); System.out.println("上传是失败!"); }finally{ try { fis.close(); ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } return false; } public void download(){ File downFile = null; boolean result = true; try{ //每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。 ftpClient.enterLocalPassiveMode(); String[] strArr = getFile(); for(int i=0;strArr!=null&i<strArr.length;i++){ downFile = new File(this.localUrl+"\\"+strArr[i]); fos = new FileOutputStream(downFile); //检索文件==下载文件 result = ftpClient.retrieveFile(strArr[i], fos); if(!result){ System.out.println(strArr[i]+"下载失败!"); } } }catch(Exception e){ e.printStackTrace(); }finally{ try { fos.close(); ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } public boolean remove(){ try { return ftpClient.deleteFile("a.png"); } catch (IOException e) { e.printStackTrace(); }//删除远程文件 return false; } public boolean rename(){ //每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。 ftpClient.enterLocalPassiveMode(); try { ftpClient.rename("3111.jpg", "3.png"); } catch (IOException e) { e.printStackTrace(); } return false; } public boolean makeDir(){ //每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。 ftpClient.enterLocalPassiveMode(); try { return ftpClient.makeDirectory("ems"); } catch (IOException e) { e.printStackTrace(); }finally{ try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } return false; } public boolean renameDir(){ ftpClient.enterLocalPassiveMode(); try { return ftpClient.rename("ems", "ems1"); } catch (IOException e) { e.printStackTrace(); }finally{ try { ftpClient.disconnect(); } catch (IOException e) { e.printSt 3ff0 ackTrace(); } } return false; } public boolean removeDir(){ ftpClient.enterLocalPassiveMode(); try { return ftpClient.removeDirectory("ems1"); } catch (IOException e) { e.printStackTrace(); }finally{ try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } return false; } public String[] getFile(){ try { ftpClient.enterLocalPassiveMode(); String[] strArr = ftpClient.listNames(); return strArr; } catch (IOException e) { e.printStackTrace(); } return null; } }
养成做笔记的习惯吧,用到了就来看看。
相关文章推荐
- org.apache.commons.net.ftp.FTPClient----根据文件名,路径检索文件 FTP上传 下载 删除文件
- org.apache.commons.net.ftp.FTPClient文件上传下载,中文乱码
- FTP文件的上传和下载---org.apache.commons.net.ftp.FTPClient
- FTP文件的上传和下载---org.apache.commons.net.ftp.FTPClient
- org.apache.commons.net.ftp.FTPClient 下载文件提示Software caused connection abort: recv failed
- 【FTP】使用org.apache.commons.net.ftp.FTPClient 实现FTP的上传下载
- org.apache.commons.net.ftp.FTPClient上传下载压缩图片
- 【FTP】org.apache.commons.net.ftp.FTPClient实现复杂的上传下载,操作目录,处理编码
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- org.apache.commons.net.ftp.FTPClient上传文件大小改变的解决方法
- ftp org.apache.commons.net.ftp.FTPClient 判断文件是否存在
- apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
- apache 的 commons-net-3.3.jar 的 ftp java代码上传下载文件
- apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
- 基于 apache 的 commons-net-3.3.jar 的 ftp java代码上传下载文件
- apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
- apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
- apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
- apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
- sun.net.ftp.FtpClient上传,下载,移动文件,修改文件等等