J2EE劍俠行

          直覺我的J2EE應用生涯,打造我心中的一把利劍。

          常用鏈接

          統計

          技術鏈接

          最新評論

          開源代碼:edtFTPj學習總結

          edtFTPj

          edtFTPj是一個FTP客戶端包它可以嵌入到應用程序中以便以提供FTP的功能.它提供一些方法如:put(),get(),chdir(),dir()與pwd()等來完成FTP的功能.

          通過對其的學習,尤其是取FILENAME是一個大的挑戰,我曾經為這個走了很多的冤枉路,我對其代碼總結。
          java代碼:
          package com.throuhout.j2eemodel.util;

          /**
          *  保留Enterprisedt公司信息
          *  Copyright (C) 2000-2004 Enterprise Distributed Technologies Ltd
          *
          *  www.enterprisedt.com
          *
          *  This library is free software; you can redistribute it and/or
          *  modify it under the terms of the GNU Lesser General Public
          *  License as published by the Free Software Foundation; either
          *  version 2.1 of the License, or (at your option) any later version.
          *
          *  This library is distributed in the hope that it will be useful,
          *  but WITHOUT ANY WARRANTY; without even the implied warranty of
          *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
          *  Lesser General Public License for more details.
          *
          *  You should have received a copy of the GNU Lesser General Public
          *  License along with this library; if not, write to the Free Software
          *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
          *
          *  Bug fixes, suggestions and comments should be sent to support@enterprisedt.com
          * nether add by heweiya
          *  對FTP服務器的通用操作
          *  ConnFTPServer(String host,String username,String password)
          *  Upload(String localfile,String filename)
          *  Download(String localpath)
          *
          */

          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.net.URL;

          import com.enterprisedt.net.ftp.FTPClient;
          import com.enterprisedt.net.ftp.FTPConnectMode;
          import com.enterprisedt.net.ftp.FTPException;
          import com.enterprisedt.net.ftp.FTPMessageCollector;
          import com.enterprisedt.net.ftp.FTPTransferType;
          import com.enterprisedt.util.debug.Logger;

          /**
          *  Simple test class for FTPClient
          *
          *  
          @author      Hans Andersen
          *  
          @author      Bruce Blackshaw
          */
          public class FtpClient {

                  
          /**
                  *  Log stream
                  
          */
                  
          private static Logger log = Logger.getLogger(FtpClient.class);
                  
          private FTPClient ftp = null;
                 
                 
                  
          public void ConnFTPServer(String host, String username, String password) {

                          
          try {
                                  
          // set up client   
                                  ftp = new FTPClient();
                                  ftp.setRemoteHost(host);
                                  FTPMessageCollector listener 
          = new FTPMessageCollector();
                                  ftp.setMessageListener(listener);
                                  
          //ftp.setAutoPassiveIPSubstitution(true);

                                  
          // connect
                                  log.info("Connecting");
                                  ftp.connect();

                                  
          // login
                                  log.info("Logging in");
                                  ftp.login(username, password);

                                  
          // set up passive ASCII transfers
                                  log.debug("Setting up passive, ASCII transfers");
                                  ftp.setConnectMode(FTPConnectMode.ACTIVE);
                                  ftp.setType(FTPTransferType.ASCII);

                          } 
          catch (Exception e) {
                                  log.error(
          "Demo failed", e);
                          }
                  }

                  
          public void Upload(String localfile, URL url) {
                          String host 
          = url.getHost();
                          
          int port = url.getPort();
                          File filePath 
          = new File(url.getPath());
                          String directory 
          = filePath.getParent().substring(1);
                          String filename 
          = filePath.getName();
                          
          try {
                                  
          //connect(host, port);
                                  ftp.chdir(directory);
                                  ftp.put(
          new FileInputStream(localfile), filename);
                          } 
          catch (Exception e) {
                                  log.error(
          "Demo failed", e);
                          }
                  }
                 
                  
          public void Upload(String localpath,String filename) {
                          
          try {
                                  ftp.put(localpath, filename);
                          } 
          catch (Exception e) {
                                  log.error(
          "Demo failed", e);
                          }
                  }
                 
                  
          public void DownloadAll(String localpath){
                          
          try {
                                  ftp.chdir(
          "xml");
                                  String[] files 
          = ftp.dir("."true);

                                  
          for (int i = 0; i < files.length; i++) {
                                          String testfile 
          = files[i].substring(39);//大家可以看到這里,testfile取μ貌皇?filename而是一個字條串,我?皇譴涌?的位置取得FILENAME,方法可能很笨,但是我不知道如何來取得真正的FILENAME。
                                          log.debug(files[i]);
                                          ftp.get(
          new FileOutputStream(localpath+testfile),testfile);
                                          
          //ftp.get(localpath + testfile, testfile);
                                  }
                          } 
          catch (IOException e) {
                                  
          // TODO 自動生成 catch 塊
                                  e.printStackTrace();
                          } 
          catch (FTPException e) {
                                  
          // TODO 自動生成 catch 塊
                                  e.printStackTrace();
                          }

                  }
              
          public void DisConn(){
                      
          try {
                                  ftp.quit();
                                 
                          } 
          catch (IOException e) {
                                  
          // TODO 自動生成 catch 塊
                                  e.printStackTrace();
                          } 
          catch (FTPException e) {
                                  
          // TODO 自動生成 catch 塊
                                  e.printStackTrace();
                          }
              }



          posted on 2005-12-16 18:05 @家軍 閱讀(1217) 評論(0)  編輯  收藏 所屬分類: J2EE開源學習

          主站蜘蛛池模板: 弋阳县| 佳木斯市| 南投县| 鹤岗市| 抚宁县| 密山市| 克拉玛依市| 乌拉特前旗| 汕头市| 栾川县| 桦甸市| 宁明县| 高密市| 曲周县| 洮南市| 确山县| 腾冲县| 依安县| 甘南县| 库尔勒市| 高清| 大庆市| 正蓝旗| 阜阳市| 曲松县| 马山县| 仁怀市| 茂名市| 兴化市| 乾安县| 呼图壁县| 百色市| 建湖县| 洪湖市| 赫章县| 宁安市| 榕江县| 肃南| 蕲春县| 桃江县| 长武县|