百度空间 | 百度首页 
 
查看文章
 
【转】FTP客户端 com.enterprisedt.net.ftp.FTPClient
2008年07月31日 星期四 上午 10:33

前一篇写了 简单的FTP客户端 sun.net.ftp.FtpClient ,由于 sun.net.ftp.FtpClient 功能比较简单,所以往往不能满足我们的需求,我们可以借助于com.enterprisedt.net.ftp.FTPClient 来完成。

以下关于 com.enterprisedt.net.ftp.FTPClient 的使用方法。

1、引入包

import com.enterprisedt.net.ftp.FTPClient;
import com.enterprisedt.net.ftp.FTPFile;
import com.enterprisedt.net.ftp.FTPMessageCollector;
import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.util.debug.Level;
import com.enterprisedt.util.debug.Logger;
import java.util.List;

2、我们建一个叫做FtpEptUtil的class

/** 判断文件夹是否存在,这种方式不是很准 */
public static boolean isDirExist(String dirname,String[] files)
{
  for (int i=0;i<files.length;i++)
   {
     if (files[i].indexOf("<DIR>")>-1&&files[i].indexOf(dirname)>-1)
      {
        return true;
      }
   }
  return false;
}
String host = "10.163.7.15";
String user = "cxl";
String password = "1";
/** 定义FTPClient便利 */      
FTPClient ftp = null;
try  
{
      /** 创建FTPClient */    
       ftp = new FTPClient();
      /** 连接服务器 */
       ftp.setRemoteHost(host);
       ftp.connect();
      /** 登陆 */
       ftp.login(user, password);

      /** 以波动模式连接 */  
       ftp.setConnectMode(FTPConnectMode.PASV);
       
      /** ASCII方式:只能传输一些如txt文本文件,
        * zip、jpg等文件需要使用BINARY方式   
        * */

      //ftp.setType(FTPTransferType.ASCII);
       ftp.setType(FTPTransferType.BINARY);
      /** 切换到主目录,并枚举主目录的所有文件及文件夹
         * 包括日期、文件大小等详细信息  
         * files = ftp.dir("."),则只有文件名
         */
                          
      String[] files = ftp.dir(".", true);
      for (int i = 0; i < files.length; i++)
           System.out.println(files[i]);
      
      /** 下载info文件夹下的所有文件到 d:\temp 目录下 */
      String outdir = "d:\\temp\\";
       File attachments = new File(outdir);
      /** 如果文件夹不存在,则创建 */
      if (!attachments.exists())
       {
          attachments.mkdir();
       }
      /** 获取文件夹下的所有文件 */
       files = ftp.dir("info");
       ftp.chdir("info");        
      for (int i=0;i<files.length;i++)
       {  
        /** 下载文件 */
         ftp.get(outdir+files[i],files[i]);    
        /** 下载后删除文件 */           
         ftp.delete(files[i]);
       }
      /** 上传文件到服务器当前目录 */
       ftp.put("20061108.xml", "20061108.xml");

      /** 删除文件 */
       ftp.delete("20061108.xml");

      /** 不存在则创建文件夹 */
      if (!isDirExist("20061108",files))
       {
          ftp.mkdir("20061108");
       }
       
      /** 断开连接   */
       ftp.quit();
       
} catch (Exception e)  
{
   logger.error("Demo failed", e);
}

-----------------JoeCom 2006-11-24 周五


类别:java题型 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu