0
我正在使用Apache commons ftps客戶端連接到ftps服務器。我有一個目錄的遠程文件路徑。該目錄包含一個子目錄和文件樹。我想獲取每個文件或文件夾的路徑。有什麼辦法可以得到這個屬性?或者,如果有任何方法可以獲取父文件夾路徑,我可以將文件名連接到它。如何使用Apache Commons net FTPS客戶端獲取文件/文件夾路徑
我正在使用Apache commons ftps客戶端連接到ftps服務器。我有一個目錄的遠程文件路徑。該目錄包含一個子目錄和文件樹。我想獲取每個文件或文件夾的路徑。有什麼辦法可以得到這個屬性?或者,如果有任何方法可以獲取父文件夾路徑,我可以將文件名連接到它。如何使用Apache Commons net FTPS客戶端獲取文件/文件夾路徑
我目前使用下面的函數來獲取某個目錄下所有文件的路徑和大小。它獲取當前目錄中的所有文件,並檢查它是否是目錄或文件。如果它是一個遞歸的目錄調用,直到樹的末尾,如果它是一個文件保存的路徑和大小。您可能不需要根據您的需要編輯這些「地圖」內容。
用法:
getServerFiles(ftp,"") // start from root
或
實現:
def getServerFiles(ftp: FTPClient, dir: String): Map[String, Double] = {
var fileList = Array[FTPFile]()
var base = ""
if (dir == "") {
fileList = ftp.listFiles
} else {
base = dir + "/"
fileList = ftp.listFiles(dir)
}
fileList.flatMap {
x => if (x.isDirectory) {
getServerFiles(ftp, base + x.getName)
} else {
Map[String, Double](base + x.getName -> x.getSize)
}
}.toMap
}