FTPS 客户端 demo,

package han;

import java.util.Vector;

/**
 * Created by han on 2017/8/30.
 */
public class FtpTest {
    private static FtpClient ftpClient;

    public   static void main (String[] args) throws Exception {
        ftpClient =new FtpClient( true);

        ftpClient.connect("127.0.0.1","a","a",990);
        ftpClient.getWorkingDirectory();
        ftpClient.changeDir("/");
        Vector<String> dirs= ftpClient.listSubDirInDir("/");
        for (String dir :dirs){
            Vector<String> files= ftpClient.listFileInDir("/"+dir);
            for (String file :files)
                System.out.println("/"+dir+"/"+new String(file.getBytes("ISO-8859-1"),"utf-8"));
        }
        ftpClient.uploadFile("F:\\xampp\\htdocs\\test\\www.php","/www.php");
    }
}
package han;

/**
 * Created by han on 2017/8/30.
 */
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.ftp.FTPSClient;
import org.apache.log4j.Logger;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Vector;

public class FtpClient{

    private static final Logger logger = Logger.getLogger(FtpClient.class);

    private FTPClient client;

    public FtpClient(boolean ftps) {
        if (ftps) {
            client = new FTPSClient(true);
        } else {
            client = new FTPClient();
        }
    }

    public boolean changeDir(String remotePath) throws Exception {
        return client.changeWorkingDirectory(remotePath);
    }

    public boolean connect(String host, String login, String password, int port) throws Exception {
        logger.debug("FTP request connect to " + host + ":" + port);
        client.connect(host, port);
        int reply = client.getReplyCode();
        if (FTPReply.isPositiveCompletion(reply)) {
            logger.debug("FTP request login as " + login);
            if (client.login(login, password)) {
                client.enterLocalPassiveMode();
                return true;
            }
        }
        disconnect();
        return false;
    }

    public void disconnect() throws Exception {
        logger.debug("FTP request disconnect");
        client.disconnect();
    }

    protected boolean downloadFileAfterCheck(String remotePath, String localFile) throws IOException {

        boolean rst;
        FileOutputStream out = null;
        try {
            File file = new File(localFile);
            if (!file.exists()) {
                out = new FileOutputStream(localFile);
                rst = client.retrieveFile(remotePath, out);
            } else {
                rst = true;
            }
        } finally {
            if (out != null) {
                out.close();
            }
        }
        if (out != null) {
            out.close();
        }
        return rst;
    }

    protected boolean downloadFile(String remotePath, String localFile) throws IOException {

        boolean rst;
        FileOutputStream out = null;
        try {
            out = new FileOutputStream(localFile);
            rst = client.retrieveFile(remotePath, out);
        } finally {
            if (out != null) {
                out.close();
            }
        }
        return rst;
    }

    public Vector<String> listFileInDir(String remoteDir) throws Exception {
        if (changeDir(remoteDir)) {
            FTPFile[] files = client.listFiles();
            Vector<String> v = new Vector<String>();
            for (FTPFile file : files) {
                if (!file.isDirectory()) {
                    v.addElement(file.getName());
                }
            }
            return v;
        } else {
            return null;
        }
    }

    public boolean uploadFile(String localFile, String remotePath) throws IOException {
        FileInputStream in = new FileInputStream(localFile);
        boolean rst;
        try {
            rst = client.storeFile(remotePath, in);
        } finally {
            in.close();
        }
        return rst;
    }

    public Vector<String> listSubDirInDir(String remoteDir) throws Exception {
        if (changeDir(remoteDir)) {
            FTPFile[] files = client.listFiles();
            Vector<String> v = new Vector<String>();
            for (FTPFile file : files) {
                if (file.isDirectory()) {
                    v.addElement(file.getName());
                }
            }
            return v;
        } else {
            return null;
        }
    }

    protected boolean createDirectory(String dirName) {
        try {
            return client.makeDirectory(dirName);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }

    public boolean isARemoteDirectory(String path) {
        String cache = "/";
        try {
            cache = client.printWorkingDirectory();
        } catch (NullPointerException e) {
            //nop
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            boolean isDir = changeDir(path);
            changeDir(cache);
            return isDir;
        } catch (IOException e) {
            //e.printStackTrace();
        } catch (Exception e) {
            //e.printStackTrace();
        }
        return false;
    }

    public String getWorkingDirectory() {
        try {
            return client.printWorkingDirectory();
        } catch (IOException e) {
        }
        return null;
    }

}

  

  

时间: 2024-08-01 12:55:56

FTPS 客户端 demo,的相关文章

netty 3.9.2 UDP协议服务器和客户端DEMO

说明:基于netty 3.9.2的udp协议实现的(如果你使用的版本是4.X或5.X,请参考其他方法):程序的逻辑结构是,客户端发送给服务端一串数据,服务器端返回给客户端“A”.在进行游戏开发时需要对udp的丢包进行处理,可以利用服务器端的返回值进行相关处理,以确定是否重发,这方面具体没有实现. 文章结构: 一.服务器端 1.UDPServer 2.UdpChannelPipelineFactory 3.UDPServerHandler 二.客户端 1.UDPClient 2.UDPClient

openwebrtc 服务端和android客户端demo安装

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/46649667 转载请一定注明出处! 1,关于openwebrtc OpenWebRTC 是基于 Gstreamer 实现的开源的.跨平台的 WebRTC 客户端框架,支持 H.264 和 VP8.利用 OpenWebRTC,WebRTC就不再仅仅是纯粹浏览器技术了,你可以在NativeAPP中使用WebRTC,并且还可以与浏览器WebRTC互联互通. 2,安装服务端demo d

python socket之tcp服务器与客户端demo

python socket之tcp服务器与客户端demo 作者:vpoet 日期:夏季 server: # -*- coding: cp936 -*- ''' 建立一个python server,监听指定端口, 如果该端口被远程连接访问,则获取远程连接,然后接收数据, 并且做出相应反馈. ''' import socket if __name__=="__main__": print "Server is starting" sock = socket.socket

winserver部署Apollo(附.net客户端demo)

前言 配置中心伴随着这几年分布式系统演变和微服务架构的兴起,已经成为必不可少的需求之一.试下一下如果哪天公司的所有应用服务,从公司服务器迁移到云服务,成千上万的配置,修改起来是多么耗时费劲的事(我们公司就是……). 配置中心主要有以下特点: 配置动态化 管理集中化 修改配置不需要重新发布配置文件,而且可以复用,同一个的配置只需要修改一次,省时省力.通过后台统一管理,修改.查看,部分产品还支持配置版本管理. Why Apollo 国产 开源 功能强大 首先是支持国产,同时在遇到问题也可以良好的和国

Android聊天客户端Demo开源了.基本的聊天功能基本上都有了,数据库也已搭建,服务器用的baiduPush。可以直接拿来用!!。(希望两个手机通信的话,改一下pushid就可以)

Hello: 我是在飞,最近写了个聊天的Android客户端.今天将此demo分享出来.原澳门大家可以到github直接下载.有问题可以联系我. 几点说明: 1:android聊天客户端的demo,包含了im的基本功能. 1.1比如gif动态表情展示.语音.聊天表情.拍照.多图的发送.大图片的处理.listview缓存的处理等. 1.2数据库也已经搭载好,算是个完整项目,可以直接拿来用. 1.3服务器使用的是baidu push服务.(图片暂时没有处理上传服务器,只是上传了本地sdcard的pa

Dubbo服务端/客户端demo

项目组采用分布式服务,线上有几十个应用,RPC调用完全依靠Dubbo.平时开发一直都是用其他人搭好的dubbo环境,最近自己抽空独立的搭建dubbo小demo,一个服务端,一个客户端. 服务端 服务端maven父工程 首先搭建一个maven父工程,引入dubbo和spring的依赖,dubbo可以和spring无缝集成. <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding

FastDFS单机搭建以及java客户端Demo

http://blog.csdn.net/u012453843/article/details/69951920 http://blog.csdn.net/xyang81/article/details/52847311 http://blog.csdn.net/kingboyworld/article/details/52299602 参考了这几个搭建了FastDFS文件系统 主要是fastDFS,nginx,以及在nginx中加入fastDFS模块:这里只有一台服务器,所以搭建的是单机版的.

.net core 3.0 Signalr - 08 业务实现-客户端demo

由于signalr作为一个单独的推送系统,跟业务系统是分离开的,所以此处模拟一个业务系统,新建一个.net core app项目 ## 模拟实现一个登录功能 我们的登录很简单,当进入系统,如果检测到用户未登录则跳转到登录页面,用户只需要输入用户名点击登录即算登录成功 - 配置ConfigServices方法 [查看代码](https://github.com/xiexingen/CTS.Signalr/blob/master/CTS.Signalr.Client/Startup.cs#L41-L

给予Socket一个android日志收集程序附客户端调用DEMO

来源:解决手机客户端实时跟踪调试问题. 主要说明:主要用于调试收集多终端相关日志信息作用. 现在仅限局域网.使用外网青保证映射正确.如.一个APP多个终端同时使用.测试问题的体现可以使用此软件进行定位处理.软件服务端使用线程池可保证大数据量下的稳定性.理论上可接受任何给予socket的信息交互程序.下面有已经被使用的JAVA客户端代码供大家参考. JAVA客户端DEMO代码: new SendPcLog(log).start(); package cn.sj.soft; import java.