java实现FTP传输文件( 2008-05-23 15:45:09| 分类: java 技术)
2012-12-10 15:14
549 查看
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; /** * @author xuyang 导入commons-net-1.4.1.jar、jakarta-oro-2.0.8.jar这两个包 * 文件、文件夹的名称有中文,先转换字符集 * 如:new String(fileName.getBytes("gb2312"),"iso8859-1"); */ public class FtpUtil { private FTPClient ftp; /** * 连接FTP服务器 * * @param serverIP * @param user * @param password * @return boolean */ public boolean connectFtpServer(String serverIP, String user, String password) { ftp = new FTPClient(); int reply; try { ftp.connect(serverIP); reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return false; } if (!ftp.login(user, password)) { disconnect(); return false; } } catch (IOException e) { disconnect(); return false; } return true; } /** * 创建文件夹 * * @param path * @return boolean */ public boolean createDirectory(String path) { try { String[] dirArray = path.split("/"); for (int i = 0; i < dirArray.length; i++) { if (dirArray[i] != null) if (!ftp.changeWorkingDirectory(dirArray[i])) { ftp.makeDirectory(dirArray[i]); ftp.changeWorkingDirectory(dirArray[i]); } } } catch (IOException e) { disconnect(); return false; } return true; } /** * 下载文件 * * @param local * @param remote * @return boolean */ public boolean downloadFile(String local, String remote) { OutputStream output = null; try { ftp.setFileType(FTP.BINARY_FILE_TYPE); ftp.enterLocalPassiveMode(); String[] dirArray = remote.split("/"); if (dirArray.length > 1) { for (int i = 0; i < dirArray.length - 1; i++) { if (dirArray[i] != null) { ftp.changeWorkingDirectory(dirArray[i]); } } } File file = new File(local); output = new FileOutputStream(file); ftp.retrieveFile(dirArray[dirArray.length - 1], output); output.close(); } catch (IOException e) { disconnect(); return false; } return true; } /** * 上传文件 * * @param local * @param remote * @return boolean */ public boolean uploadFile(String local, String remote) { InputStream input = null; try { ftp.setFileType(FTP.BINARY_FILE_TYPE); ftp.enterLocalPassiveMode(); String[] dirArray = remote.split("/"); if (dirArray.length > 1) { for (int i = 0; i < dirArray.length - 1; i++) { if (dirArray[i] != null) { ftp.changeWorkingDirectory(dirArray[i]); } } } input = new FileInputStream(local); ftp.storeFile(dirArray[dirArray.length - 1], input); input.close(); } catch (IOException e) { disconnect(); return false; } return true; } /** * 删除文件 * * @param filePath * @return boolean */ public boolean deleteFile(String filePath) { try { String[] dirArray = filePath.split("/"); if (dirArray.length > 1) { for (int i = 0; i < dirArray.length - 1; i++) { if (dirArray[i] != null) { ftp.changeWorkingDirectory(dirArray[i]); } } } ftp.deleteFile(dirArray[dirArray.length - 1]); } catch (IOException e) { disconnect(); return false; } return true; } /** * 删除文件夹 * * @param path * @return boolean */ public boolean removeDirectory(String path) { try { String[] dirArray = path.split("/"); for (int i = 0; i < dirArray.length; i++) { if (dirArray[i] != null) { ftp.changeWorkingDirectory(dirArray[i]); } } FTPFile[] files = ftp.listFiles(); for (int j = 0; j < files.length; j++) { if (files[j].isDirectory()) { // 递归删除子文件夹 removeDirectory(files[j].getName()); } .getname/]ftp.deleteFile(files[j].getName()); } ftp.changeToParentDirectory(); ftp.removeDirectory(dirArray[dirArray.length - 1]); } catch (IOException e) { disconnect(); return false; } return true; } /** * 重命名文件、文件夹 * * @param from * @param to * @return boolean */ public boolean rename(String from, String to) { try { String[] dirArray = from.split("/"); if (dirArray.length > 1) { for (int i = 0; i < dirArray.length - 1; i++) { if (dirArray[i] != null) { ftp.changeWorkingDirectory(dirArray[i]); } } } ftp.rename(dirArray[dirArray.length - 1], to); } catch (IOException e) { disconnect(); return false; } return true; } /** * 断开连接 */ public void disconnect() { if (ftp.isConnected()) { try { ftp.logout(); ftp.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } }
相关文章推荐
- UDP:Java实现简单大文件传输 分类: 网络通讯 2014-09-21 20:21 319人阅读 评论(0) 收藏
- UDP:Java实现简单大文件传输 分类: 网络通讯 2014-09-21 20:21 320人阅读 评论(0) 收藏
- 用Java写个ftp传输类实现文件的上传和下载,用ikvmc转成dll
- 用Java写个ftp传输类实现文件的上传和下载,用ikvmc转成dll
- Java连接FTP服务器并且实现对其文件的上传和下载
- Java实现FTP文件上传与下载
- java实现把文件上传至ftp服务器
- Java实现FTP文件与文件夹的上传和下载
- java实现ftp文件下载的源代码
- Java 使用ftp的方式上传文件到linux,并实现删除,下载
- Chap5:使用JNI技术实现java程序调用第三方dll(c/c++)文件的功能
- Java实现分类文件拷贝2
- Java连接FTP并且实现文件的上传和下载
- Java代码使用FTPClient实现ftp文件上传下载和删除的功能
- JAVA技术实现上传下载文件到FTP服务器(完整)
- java 中 FtpClient 实现 FTP 文件上传、下载
- java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表
- JAVA实现FTP文件上传下载文件
- java实现将ftp和http的文件直接传送到hdfs
- java使用FTPClient实现文件的上传和下载