溫馨提示×

java ftpserver怎么列出目錄

小樊
123
2024-12-06 20:11:18
欄目: 編程語言

要使用Java實現FTPS服務器并列出目錄,你可以使用Apache Commons Net庫。首先,確保將以下依賴項添加到項目的pom.xml文件中(如果你使用的是Maven項目):

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.8.0</version>
</dependency>

接下來,創建一個簡單的FTPS服務器類,如下所示:

import org.apache.commons.net.ftp.FTPSClient;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FTPServer {

    public static void main(String[] args) {
        String server = "localhost";
        int port = 2121;
        String user = "ftpserver";
        String pass = "ftpserverpassword";

        FTPSClient ftpsClient = new FTPSClient();
        try {
            // 連接到FTPS服務器
            ftpsClient.connect(server, port);
            ftpsClient.login(user, pass);
            ftpsClient.enterLocalPassiveMode();
            ftpsClient.setFileType(FTPSClient.BINARY_FILE_TYPE);

            // 列出目錄內容
            Path rootDir = Paths.get("/path/to/your/directory");
            listDirectory(ftpsClient, rootDir);

            // 斷開連接
            ftpsClient.logout();
            ftpsClient.disconnect();
        } catch (IOException ex) {
            System.out.println("Error: " + ex.getMessage());
            ex.printStackTrace();
        }
    }

    private static void listDirectory(FTPSClient ftpsClient, Path dir) throws IOException {
        // 獲取目錄中的所有文件和子目錄
        Files.list(dir).forEach(path -> {
            // 如果是目錄,則遞歸列出子目錄
            if (Files.isDirectory(path)) {
                listDirectory(ftpsClient, path);
            } else {
                // 如果是文件,則輸出文件名
                System.out.println(path.getFileName());
            }
        });
    }
}

請注意,你需要將/path/to/your/directory替換為你要列出的實際目錄路徑。此外,確保你的FTPS服務器正在運行并允許客戶端連接。

運行上述代碼后,你將看到給定目錄中的所有文件和子目錄的列表。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女