zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }
    

      

      

  • 相关阅读:
    pass cloudcc
    eclipse生成javaDoc时,出现"编码GBK 的不可映射字符"
    tabWidget 直布局
    用 Navicat for Oracle 管理 Oracle10g/11g 数据库
    Aspx页面内 成员变量丢失的问题
    AspNet2.0页面生命周期
    【Z】浅析豆瓣的 Google Analytics 应用
    绑定SqlDataSource的Gridview字符串字段长度截取(转)
    Java web 推荐书籍
    关于Reapeter的总结
  • 原文地址:https://www.cnblogs.com/cndavy/p/7452658.html
Copyright © 2011-2022 走看看