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 @家军 阅读(1201) 评论(0)  编辑  收藏 所属分类: J2EE开源学习


只有注册用户登录后才能发表评论。


网站导航: