我使用Apache commons ftps客户端连接到ftps服务器。我有远程文件路径,这是一个目录。该目录包含子目录和文件树。我想获取每个文件或文件夹的路径。有什么方法可以得到这个属性吗?或者,如果有任何方法可以获得父文件夹路径,我可以将文件名连接到它。
答案 0 :(得分:0)
我目前正在使用以下函数来获取某个目录下所有文件的路径和大小。它获取当前目录中的所有文件,并检查它是否是目录或文件。如果是递归目录,直到树的结尾,如果是文件,则保存路径和大小。你可能不需要这些" map"你可以根据自己的需要编辑的东西。
用法:
getServerFiles(ftp,"") // start from root
或
getServerFiles(ftp,"directory_name") // start from given directory
实施:
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
}