`
sillycat
  • 浏览: 2482906 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

ftp client的开源实现

    博客分类:
  • JAVA
阅读更多
ftp client的开源实现

首页
http://www.sauronsoftware.it/projects/ftp4j/

下载得到文件
ftp4j-1.3.1.zip

文档库地址
http://www.sauronsoftware.it/projects/ftp4j/manual.php

需要引入的JAR包
<dependency>
<groupId>it.sauronsoftware</groupId>
<artifactId>ftp4j</artifactId>
<version>1.3.1</version>
</dependency>
呵呵,这个JAR是我自己上传到我的MAVEN私服上面滴,其实就是ftp4j-1.3.1.zip里面解开压缩得到的JAR

对于这个东东,也是新鲜而已,参考官方的文档写了个测试,没有测试性能如何,
测试类FtpClientTest.java的全文如下:
package com.sillycat.easyftpclient.client;
import it.sauronsoftware.ftp4j.FTPAbortedException;
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPDataTransferException;
import it.sauronsoftware.ftp4j.FTPException;
import it.sauronsoftware.ftp4j.FTPFile;
import it.sauronsoftware.ftp4j.FTPIllegalReplyException;
import it.sauronsoftware.ftp4j.FTPListParseException;
import java.io.File;
import java.io.IOException;
public class FtpClientTest {
public static void main(String[] args) {
   FTPClient client = new FTPClient();
   try {
    // 连接
    client.connect("localhost", 2221);
    // 登陆
    client.login("admin", "admin");
    // 得到当前目录
    String dir = client.currentDirectory();
    // 列表当前文件
    FTPFile[] files = client.list();
    if (files != null && files.length > 0) {
     for (int i = 0; i < files.length; i++) {
      FTPFile f = files[i];
      if (f.getName().equalsIgnoreCase("test1")
        && FTPFile.TYPE_DIRECTORY == f.getType()) {
       //如果目录test1已经有了,那么删除它
       client.deleteDirectory(dir + "/test1");
       break;
      }
     }
    }
    // 新增目录test1
    client.createDirectory(dir + "/test1");
    // 进入目录test1
    client.changeDirectory(dir + "/test1");
    //返回上级目录
    client.changeDirectoryUp();
    // 上传图片文件
    client.upload(new File("E:\\work\\ftp\\upload\\test2.jpg"),new MyTransferListener());
    // 上传压缩文件
    client.upload(new File("E:\\work\\ftp\\upload\\test3.rar"),new MyTransferListener());
    //改名
    client.rename("test2.jpg", "cc.jpg");
    //移动位置
    client.rename("test3.rar", dir + "/test1/dd.rar");
    //下载图片
    client.download("cc.jpg", new File("E:\\work\\ftp\\download\\cc.jpg"),new MyTransferListener());
    //下载压缩文件
    client.download(dir + "/test1/dd.rar", new File("E:\\work\\ftp\\download\\dd.rar"),new MyTransferListener());
    //删除FTP服务器上文件
    client.deleteFile(dir + "/test1/dd.rar");
    // 退出
    client.logout();
    // 释放连接
    client.disconnect(true);
   } catch (IllegalStateException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   } catch (FTPIllegalReplyException e) {
    e.printStackTrace();
   } catch (FTPException e) {
    e.printStackTrace();
   } catch (FTPDataTransferException e) {
    e.printStackTrace();
   } catch (FTPAbortedException e) {
    e.printStackTrace();
   } catch (FTPListParseException e1) {
    e1.printStackTrace();
   }
}
}

下载和上传的时候的监听器MyTransferListener实现FTPDataTransferListener接口
package com.sillycat.easyftpclient.client;

import it.sauronsoftware.ftp4j.FTPDataTransferListener;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class MyTransferListener implements FTPDataTransferListener {

private Log log = LogFactory.getLog(getClass());

public void aborted() {
   log.info("abort-----------------");
}

public void completed() {
   log.info("complete-----------------");
}

public void failed() {
   log.info("fail-----------------");
}

public void started() {
   log.info("start-----------------");
}

public void transferred(int length) {
   log.info("length---------------: " + length);
}

}
分享到:
评论

相关推荐

    FileZilla FTP Client

    FileZilla FTP Client 开源的软件,完全免费,纯绿色,比市面上大部分ftp软件好用

    android 开源库上传FTP

    开源库的包名是这个org.apache.commons.net.ftp.FTPClient;是属于局域网的ftp上传,要有ip、端口、用户名以及密码。我根据网上的下载demo,自已研究了一番,又封装了一个类自已使用。欢迎访问博客:...

    前端开源库-ftp-client

    前端开源库-ftp-clientftp客户机,节点ftp模块的包装器

    The FTP Client-开源

    一个简单的FTP客户端。

    基于lwip的ftp客户端代码

    基于ucos系统通过lwip实现ftp客户端功能,用于从服务器下载升级程序少些片上flash

    FileZilla FTP Client.rar

    FileZilla是一个免费开源的FTP客户端软件,分为客户端版本和服务器版本,具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户端工具。

    tftp-ftp开源软件

    开源软件,支持tftp和ftp server端、client端,方便用户进行文件上传和下载

    FileZilla FTP Client.zip

    FileZilla FTP Client 是一个个免费开源的FTP软件 具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户端工具

    Yet Another FTP Client-开源

    Yafc是一个开放源代码控制台模式FTP客户端。 它支持Kerberos 4/5身份验证和sftp(ssh2)。 其他功能包括制表符完成,目录缓存,强大的别名,递归文件命令和具有自动登录功能的书签。

    Python FTP Client-开源

    一个用Python编写的用户友好,菜单驱动的FTP客户端。

    FTP客户端C源码(Linux版)

    N年前写的FTP客户端,练习程序,支持常用命令,支持PASV与PORT模式 对应的服务器端为: http://download.csdn.net/source/2724443

    PHP FTP CLIENT-开源

    PHP FTP CLIENT是ftp客户端,它通过HTTP接口运行。

    MatzSoft Java FTP-Client-开源

    MJftp是使用纯Java编写的开源多平台ftp客户端。

    Ultra Light FTP Client-开源

    Ftp 客户端控制台应用程序设计用于资源有限的设备,如 Windows CE。 实现常见的ftp功能以及一些额外的功能,例如批量上传/下载文件。 它应该适用于大多数 Windows CE 平台和普通 Windows。

    ftp 客户端实现

    用edtftpj.jar 实现的ftp client edtFTPj是一个非常强大的FTP组件,有Java版本、.NET版本、JavaScript版本。  Java版本的有收费的edtFTPj/PRO,还有免费开源的edtFTPj/Free。  这里使用edtFTPj/Free。  ...

    FtpGUI - Swing Ftp Client-开源

    这个项目打算给大家用Java编写的ftp客户端。 当前,FtpGUI实现了常用功能。 获取-RETR检索ftp服务器上的文件列表文件,放置-STOR-上传文件,然后搜索名称

    .Net FTP Client-开源

    这是FTP客户端协议的纯.Net实现。 它旨在同时在Microsoft的.Net CLR和Mono CLR中运行。

    Perl FTP Client-开源

    这是一个用Perl编写的小型FTP客户端,它打算在终端中使用。 根据GNU GPL V3许可证发布的软件。

Global site tag (gtag.js) - Google Analytics