【发布时间】:2014-10-22 04:20:55
【问题描述】:
我想获取给定文件位置的所有非空目录,例如:
/src/abc
/src/abc/123/123.txt
/src/abc/abc/123.txt
/src/abc/foo/123.txt
我想获取 Seq[String]
/src/abc/123
/src/abc/abc
/src/abc/foo
我使用这个代码。
def getAllDirectories(location: String): Seq[String] = {
def recursiveListDirectories(f: File): Seq[File] = {
val these = f.listFiles
val directories = these.filter(_.isDirectory)
directories ++ directories.flatMap(recursiveListDirectories)
}
recursiveListDirectories(new File(location)).filter(t => !t.listFiles().forall(_.isDirectory)).map(_.getPath)
}
我想知道如何使 recursiveListDirectories 方法尾递归?
在此先感谢
【问题讨论】:
标签: scala tail-recursion