2015-11-06 113 views
0

我正在使用Apache commons ftps客户端连接到ftps服务器。我有一个目录的远程文件路径。该目录包含一个子目录和文件树。我想获取每个文件或文件夹的路径。有什么办法可以得到这个属性?或者,如果有任何方法可以获取父文件夹路径,我可以将文件名连接到它。如何使用Apache Commons net FTPS客户端获取文件/文件夹路径

回答

0

我目前使用下面的函数来获取某个目录下所有文件的路径和大小。它获取当前目录中的所有文件,并检查它是否是目录或文件。如果它是一个递归的目录调用,直到树的末尾,如果它是一个文件保存的路径和大小。您可能不需要根据您的需要编辑这些“地图”内容。

用法:

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 
    } 
相关问题