`

开源代码:edtFTPj学习总结

 
阅读更多
edtFTPj

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

通过对其的学习,尤其是取FILENAME是一个大的挑战,我曾经为这个走了很多的冤枉路,我对其代码总结。
java代码:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->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();
                }
    }



分享到:
评论

相关推荐

    开源代码使用指南

    开源代码使用指南  开源代码(Open Source):是促进软件发展的一种协作方式。与商用软件不同,它公开源代码, 允许用户直接拿来学习、开发。使用Open Source的应用受到Open Source的许可证限制,如有些 Open ...

    edtftpj.zip

    2. **异步传输**:EDTFTPJ允许异步文件传输,这意味着用户可以在执行其他任务的同时进行文件上传或下载,提高了工作效率。 3. **断点续传**:在传输过程中如果因网络问题中断,该工具支持从上次中断的地方继续,...

    工业通信modbus协议的开源代码

    总结,工业通信modbus协议的开源代码是宝贵的资源,它不仅提供了理解和实现Modbus协议的途径,而且通过支持Linux和ARM处理器,极大地扩展了其应用范围。对于工业自动化领域的开发者而言,这是一个学习、创新和优化...

    LookAround开源代码移动互联网客户端使用众多第三方库做客户端开发初步可以学习借鉴。.zip

    总结而言,LookAround开源代码项目为移动互联网客户端开发提供了一个很好的学习平台,它集成了多种第三方库,展示了实际开发中的常见技术栈。通过深入研究和实践,开发者不仅可以掌握具体的编程技巧,还能理解如何...

    GIS开源代码GIS开源代码GIS开源代码 空间分析

    同时,他们还能深入到GIS的内部机制,学习如何利用开源GIS代码开发自己的应用程序,或者改进现有的GIS功能。这对于GIS领域的研究人员、软件工程师和地理信息专业学生来说,是一份极具价值的学习材料。

    H.264 开源代码

    - **学习研究**:开源代码可以帮助开发者深入理解H.264编码的内部机制,提高技术水平。 - **二次开发**:开发者可以基于开源代码进行定制化开发,满足特定应用场景的需求。 - **性能优化**:开源项目通常会持续...

    PDF开源源代码:SumatraPDF

    SumatraPDF是一款轻量级、免费的PDF阅读器,它以开源的形式提供,深受程序员和技术爱好者的喜爱。这款软件的设计理念是简洁、快速且...开源社区的活跃也意味着源代码会持续更新和完善,提供了良好的学习和交流环境。

    开源opc:lightOPC源码

    LightOPC是其中的一个开源实现,对于学习和理解OPC技术具有很高的价值。本篇将深入探讨LightOPC的源码,以及与之相关的其他资源。 首先,LightOPC是一个轻量级的 OPC UA (OPC统一架构) 客户端和服务器库,它是基于...

    开源代码GPS跟踪系统

    开源代码GPS跟踪系统是一种利用全球定位系统(GPS)技术,结合网络通信,通过Web界面实现对车辆、行人或其他移动物体实时位置追踪的应用。基于Java语言编写,这种系统提供了高度可扩展性和灵活性,使得开发者能够...

    最新TX滑块TDC纯算法开源代码

    开源代码的发布为开发者提供了一个学习和研究此类验证码实现的宝贵机会。 首先,我们需要理解滑块验证码的工作原理。通常,这种验证码会展示一张被部分遮挡的图片,用户需要通过移动滑块来覆盖图片中的隐藏部分,...

    Android开源代码

    在IT行业中,Android开源代码是开发者们学习、研究和创新的重要资源。开源意味着代码可以被公众查看、使用、修改和分发,这对于技术进步和社区合作具有巨大的推动力。以下是一些基于Android开源代码的相关知识点: ...

    tftp协议开源代码

    TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一种轻量级的文件传输协议,主要设计...对于想要从事网络服务开发、嵌入式系统编程或者网络设备配置的人来说,TFTP协议及其开源实现是不可多得的学习资源。

    OBD开源代码资料

    学习和使用这些开源代码,开发者需要掌握一些关键技能,例如嵌入式编程、蓝牙或Wi-Fi通信、协议解析、数据分析等。对于初学者,可以通过阅读源码理解OBD通信流程,对于有经验的开发者,可以在此基础上进行创新和优化...

    开源代码网站.docx

    本文将详细介绍一系列针对C/C++开发者的优秀开源代码网站,并推荐一些值得学习的C语言开源项目。 #### 二、开源代码网站介绍 1. **GitHub** - **简介**:GitHub 是全球最大的开源社区,拥有大量的C/C++项目。...

    安卓开源 代码

    开源的Android代码为开发者提供了丰富的学习材料,他们可以通过阅读源码来了解Android的内部机制,例如Activity管理、Intent解析、Service运行等。此外,开发者还可以利用这些代码作为基础,创建自己的定制ROM或...

    19届智能车镜头组c车模TC264迪克旋转队开源代码

    通过分析和学习这些开源代码,我们可以理解智能车的控制原理,学习如何利用TC264这样的高级微控制器进行系统设计,并且能够借鉴他们的优化技巧,提升自己的项目开发能力。开源精神促进了技术的交流和进步,让我们...

    远程桌面开源代码

    开源意味着源代码对公众开放,开发者可以查看、学习、修改并分发代码,为社区提供持续改进和创新的机会。这种模式在IT领域中特别受欢迎,因为它鼓励协作和透明度,有助于快速推动技术发展。 远程桌面功能通常包括...

    购物网站开源代码

    综上所述,这个开源代码包提供了学习和实践ASP.NET Web应用开发,特别是电子商务网站构建的宝贵资源。通过研究这些文件,开发者可以深入了解如何构建一个完整的购物网站,包括前后端交互、数据库操作、用户认证和...

    Android四种播放器开源代码

    在Android平台上,开发音视频播放应用是一个常见的任务,而开源代码的存在使得开发者能够学习和借鉴现有的解决方案。本文将深入探讨Android的四种播放器开源代码,包括rockplayer、PlayerActivity、Music_Player和...

Global site tag (gtag.js) - Google Analytics