`

开源代码:edtFTPj学习总结

阅读更多
edtFTPj

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

通过对其的学习,尤其是取FILENAME是一个大的挑战,我曾经为这个走了很多的冤枉路,我对其代码总结。
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();;
		}
    }


}

分享到:
评论

相关推荐

    滑膜观测器与SVPWM控制的FOC电机全开源控制代码:带原理图、算法推导与文档资料,无感FOC电机控制代码,算法采用滑膜观测器,SVPWM控制,启动采用Vf,全开源代码,很有参考价值 带原理图,SM

    滑膜观测器与SVPWM控制的FOC电机全开源控制代码:带原理图、算法推导与文档资料,无感FOC电机控制代码,算法采用滑膜观测器,SVPWM控制,...,基于滑膜观测器与SVPWM的无感FOC电机控制代码全开源:含原理图与MATLAB模型

    edtftpj.zip

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

    官方yoloV5开源代码深度解读注释:学习参考,每个文件夹和模块详尽注释,助力深度学习入门,官方yoloV5开源代码注释,基本每个文件夹和模块都有注释,非常详细 自己写的注释,供学习参考使用 深度

    官方yoloV5开源代码深度解读注释:学习参考,每个文件夹和模块详尽注释,助力深度学习入门,官方yoloV5开源代码注释,基本每个文件夹和模块都有注释,非常详细。 自己写的注释,供学习参考使用。 深度学习入门代码...

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

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

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

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

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

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

    仿三菱PLC开源代码

    【仿三菱PLC开源代码】是一个专为学习和开发基于8051芯片的PLC(可编程逻辑控制器)设计的项目。8051是一款经典的微处理器,广泛应用于嵌入式系统,包括PLC设备。这个开源项目旨在提供一个与三菱FX1N系列PLC兼容的...

    H.264 开源代码

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

    61850 开源代码

    总结而言,61850开源代码是理解和应用变电站自动化技术的重要途径,它涵盖了从底层通信协议到上层应用服务的全面知识,对于电力系统自动化领域的技术人员来说,这是一个宝贵的参考资料。通过学习和实践,我们可以更...

    PDF开源源代码:SumatraPDF

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

    开源opc:lightOPC源码

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

    如何阅读开源代码

    优秀的源代码往往包含了开发者们在长期实践中总结出来的高效解决方案,通过仔细研读这些代码,我们不仅能够学习到具体的实现方式,还能够理解背后的逻辑和设计理念。这对于提高编程水平具有重要作用。 **好处之二:...

    开源代码GPS跟踪系统

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

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

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

    OBD开源代码资料

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

    Python开源项目之人工智能老照片修复算法-库包等

    Python开源项目之人工智能老照片修复算法学习 Bringing-Old-Photos-Back-to-Life-master完整代码,只为更加节省各位开发者的时间,开箱即用,无需烦恼各种确实配置等。 开源代码:...

    安卓开源 代码

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

    IEC61850开源代码libIEC61850

    《IEC61850开源代码libIEC61850详解》 IEC61850是国际电工委员会(International Electrotechnical Commission,简称IEC)制定的一项标准,它主要针对电力系统自动化设备之间的通信,旨在实现变电站自动化系统的互...

    tftp协议开源代码

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

Global site tag (gtag.js) - Google Analytics