浏览 11828 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-06-20
package com.northking.dataManager.util; import sun.net.ftp.*; import sun.net.*; import java.io.*; /** * 使用sun.net.ftp工具包进行ftp上传下载 * @author maochangming * @date 2008-6-20 13:09:29 * @description: */ public class FtpTool { String ip; int port; String user; String pwd; String remotePath; String localPath; FtpClient ftpClient; /** * 连接ftp服务器 * @param ip * @param port * @param user * @param pwd * @return * @throws Exception */ public boolean connectServer(String ip, int port, String user, String pwd) throws Exception { boolean isSuccess = false; try { ftpClient = new FtpClient(); ftpClient.openServer(ip, port); ftpClient.login(user, pwd); isSuccess = true; } catch (Exception ex) { throw new Exception("Connect ftp server error:" + ex.getMessage()); } return isSuccess; } /** * 下载文件 * @param remotePath * @param localPath * @param filename * @throws Exception */ public void downloadFile(String remotePath,String localPath, String filename) throws Exception { try { if (connectServer(getIp(), getPort(), getUser(), getPwd())) { if (remotePath.length() != 0) ftpClient.cd(remotePath); ftpClient.binary(); TelnetInputStream is = ftpClient.get(filename); File file_out = new File(localPath + File.separator + filename); FileOutputStream os = new FileOutputStream(file_out); byte[] bytes = new byte[1024]; int c; while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); } is.close(); os.close(); ftpClient.closeServer(); } } catch (Exception ex) { throw new Exception("ftp download file error:" + ex.getMessage()); } } /** * 上传文件 * @param remotePath * @param localPath * @param filename * @throws Exception */ public void uploadFile(String remotePath,String localPath, String filename) throws Exception { try { if (connectServer(getIp(), getPort(), getUser(), getPwd())) { if (remotePath.length() != 0) ftpClient.cd(remotePath); ftpClient.binary(); TelnetOutputStream os = ftpClient.put(filename); File file_in = new File(localPath + File.separator + filename); FileInputStream is = new FileInputStream(file_in); byte[] bytes = new byte[1024]; int c; while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); } is.close(); os.close(); ftpClient.closeServer(); } } catch (Exception ex) { throw new Exception("ftp upload file error:" + ex.getMessage()); } } /** * @return */ public String getIp() { return ip; } /** * @return */ public int getPort() { return port; } /** * @return */ public String getPwd() { return pwd; } /** * @return */ public String getUser() { return user; } /** * @param string */ public void setIp(String string) { ip = string; } /** * @param i */ public void setPort(int i) { port = i; } /** * @param string */ public void setPwd(String string) { pwd = string; } /** * @param string */ public void setUser(String string) { user = string; } /** * @return */ public FtpClient getFtpClient() { return ftpClient; } /** * @param client */ public void setFtpClient(FtpClient client) { ftpClient = client; } /** * @return */ public String getRemotePath() { return remotePath; } /** * @param string */ public void setRemotePath(String string) { remotePath = string; } /** * @return */ public String getLocalPath() { return localPath; } /** * @param string */ public void setLocalPath(String string) { localPath = string; } } Junit测试类 package com.northking.dataManager.dataimport.parse.test; import com.northking.dataManager.util.FtpTool; import junit.framework.TestCase; /** * @author maochangming * @date 2008-6-20 13:09:11 * @description: */ public class FtpToolTest extends TestCase { FtpTool ftpTool; /** * Constructor for FtpToolTest. * @param arg0 */ public FtpToolTest(String arg0) { super(arg0); } public static void main(String[] args) { junit.textui.TestRunner.run(FtpToolTest.class); } public void testDownLoadFile()throws Exception{ ftpTool.downloadFile(ftpTool.getRemotePath(),"c:/downloads","JBFImgMng.CAB"); } /* * @see TestCase#setUp() */ protected void setUp() throws Exception { ftpTool = new FtpTool(); ftpTool.setIp("10.164.12.70"); ftpTool.setPort(2100); ftpTool.setUser("share"); ftpTool.setPwd("share"); ftpTool.setRemotePath("/paeams"); super.setUp(); } /* * @see TestCase#tearDown() */ protected void tearDown() throws Exception { super.tearDown(); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-03
sun.net.ftp.*;
请问LZ,可否直接在客户端操作,将服务端的文件从目录A移动到目录B? |
|
返回顶楼 | |
发表时间:2008-09-04
这倒没有实验过,不过应该是可以的;
你用ftp客户端软件将一个文件从一个目录转移到另外一个目录中时看一下ftp日志,它使用的是什么命令,探索一下,呵呵 |
|
返回顶楼 | |
发表时间:2008-11-20
用FtpClient的rename方法可以将服务端的文件从目录A移动到目录B
太忙了,一直没时间整理,有空了把代码贴上来 |
|
返回顶楼 | |