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());
            }
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM