zoukankan      html  css  js  c++  java
  • JAVA 中不错的开源FTP组件:commons-net

    第一步:引入jar到pom.xml、

            <!-- https://mvnrepository.com/artifact/commons-net/commons-net -->
            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>3.6</version>
            </dependency>

    第二步:demo代码示例

    以下代码实现了,连接ftp,遍历ftp服务器上的目录结构

    package com.dx.ftp;
    
    import java.io.IOException;
    import java.net.MalformedURLException;
    
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPFile;
    import org.apache.commons.net.ftp.FTPReply;
    
    /**
     * Hello world!
     */
    public class App {
        public static void main(String[] args) throws IOException {
            String hostname = "ftp1.linuxidc.com";
            Integer port = 21;
            String username = "ftp1.linuxidc.com";
            String password = "www.linuxidc.com";
            FTPClient ftpClient = new FTPClient();
    
            // ftpClient.setControlEncoding("utf-8");
            ftpClient.setControlEncoding("GB2312");
    
            try {
                System.out.println("connecting...ftp服务器:" + hostname + ":" + port);
                ftpClient.connect(hostname, port); // 连接ftp服务器
                ftpClient.login(username, password); // 登录ftp服务器
                int replyCode = ftpClient.getReplyCode(); // 是否成功登录服务器
                if (!FTPReply.isPositiveCompletion(replyCode)) {
                    System.out.println("connect failed...ftp服务器:" + hostname + ":" + port);
                }
                System.out.println("connect successfu...ftp服务器:" + hostname + ":" + port);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            ftpClient.enterLocalPassiveMode();
            ftpClient.changeWorkingDirectory("/");
    
            deepLoop(ftpClient, "/");
    
            System.out.println("Hello World!");
        }
    
        private static void deepLoop(FTPClient ftpClient, String dir) throws IOException {
            FTPFile[] files = ftpClient.listFiles(dir);
            for (FTPFile file : files) {
                if (file.isDirectory()) {
                    if (!file.getName().startsWith(".")) {
                        System.out.println("directory     ---------> " + dir + "/" + file.getName());
                        deepLoop(ftpClient, dir + "/" + file.getName());
                    }
                } else if (file.isFile()) {
                    System.out.println("file         ---------> " + dir + "/" + file.getName());
                } else if (file.isSymbolicLink()) {
                    System.out.println("symboliclink---------> " + file.getName());
                } else if (file.isUnknown()) {
                    System.out.println("unknown        ---------> " + file.getName());
                }
            }
        }
    }
  • 相关阅读:
    celery的使用和原理
    内核通知链
    数据流中的中位数
    二叉搜索树的后序遍历序列
    Javascript设计模式系统讲解与应用,JS设计模式详解
    微服务系列之ZooKeeper注册中心和Nacos注册中心
    微信小程序开发详解:小程序入门与实战-纯正商业级应用技术
    Java零基础该怎么去学习Java?学好Java应该如何去做?
    Flutter从入门到进阶实战携程网App项目详解
    Python升级3.6强力Django+杀手级Xadmin打造在线教育平台
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/9338524.html
Copyright © 2011-2022 走看看