要使用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服務器正在運行并允許客戶端連接。
運行上述代碼后,你將看到給定目錄中的所有文件和子目錄的列表。