设为首页 收藏本站
查看: 1134|回复: 0

[经验分享] ftp client的开源实现

[复制链接]

尚未签到

发表于 2016-6-8 10:54:37 | 显示全部楼层 |阅读模式
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;
      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);
}

}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-227779-1-1.html 上篇帖子: 关于FTP的中文问题 下篇帖子: Java_util_ftp_operation
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表