www.pudn.com > test.rar > test.java


package cn.edu.sut; 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
 
import sun.net.TelnetOutputStream; 
import sun.net.ftp.*; 
 
import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 
import cn.edu.sut.Path; 
import java.util.List; 
import java.util.Iterator; 
/** 
* Class       FtpFileUpload.java 
* Function 使用ftp上传文件、目录  
* @author     bwgm 
* @version 1.0 
* @Date       2007-7-12 
*/ 
 
public class test { 
 
private FtpClient ftpClient=null; 
 
public test(){ 
     ftpClient=new FtpClient(); 
     ftpClient.setConnectTimeout(5000);//设置连接超时时间为5s 
} 
 
/** 
     * 建立与ftp服务器的连接 
     * @param host      主机 
     * @param port      端口 
     * @param user      用户名 
     * @param password     密码 
     * @throws IOException     建立连接失败 
 * @throws DocumentException  
     */ 
public void connect()throws IOException, DocumentException{ 
	 Path path = new Path(); 
	 String pathstr = path.getPath("STATISTICXML")+"/test.xml"; 
	 SAXReader saxReader = new SAXReader(); 
	 Document document = saxReader.read(new File("D:/project/workspace/lg/WEB-INF/src/cn/edu/sut/ftplogin.xml")); 
	 List list = document.selectNodes("/ftplogin/site/host"); 
	 Iterator iter=list.iterator(); 
	 Element elementts = (Element)iter.next(); 
	 String host = elementts.getText(); 
	 list = document.selectNodes("/ftplogin/site/port"); 
	 iter=list.iterator(); 
	 elementts = (Element)iter.next(); 
	 String port1 = elementts.getText(); 
	 int port = Integer.parseInt(port1); 
	 list = document.selectNodes("/ftplogin/site/user"); 
	 iter=list.iterator(); 
	 elementts = (Element)iter.next(); 
	 String user = elementts.getText(); 
	 list = document.selectNodes("/ftplogin/site/password"); 
	 iter=list.iterator(); 
	 elementts = (Element)iter.next(); 
	 String password = elementts.getText(); 
     ftpClient.openServer(host,port); 
     ftpClient.login(user,password); 
     ftpClient.binary(); 
} 
 
/** 
     * 进入某一级目录 
     * @param relativePath 相对路径(也可以是绝对路径,但要注意写法) 
     * @throws IOException 目录不存在或权限不够 
     */ 
public void cd(String relativePath)throws IOException{ 
     ftpClient.cd(relativePath); 
} 
 
/** 
     * 上传整个目录 
     * @param directory       目录路径 
     * @throws IOException 目录不存在或访问权限不够 
     */ 
public void uploadDirectory(String directory)throws IOException{ 
     File file=new File(directory); 
     String name=null;//待上传文件名 
   
     if(file.isDirectory()){//如果为目录,则按目录传 
      File[] files=file.listFiles();  
    
      //在ftp服务器上创建对应目录 
      ftpClient.ascii();   
      String dir = file.getName(); 
      ftpClient.sendServer("XMKD " + dir + "\r\n"); 
      ftpClient.readServerResponse(); 
      ftpClient.cd(dir); 
      ftpClient.binary(); 
   
      //循环传递目录下的所有文件与目录 
      int i=0; 
      for(i=0;i