Scala 獲取指定目錄下的所有檔案
阿新 • • 發佈:2019-02-15
最近在學習Scala,想要獲取指定目錄下的所有檔名,但是Scala 中有沒有相應的庫函式,由於本人是新手,所以弄了半天,好不容易才將網上的一段Scala 遞迴獲取指定目錄下所有目錄的程式碼改成獲取檔名,特在此備忘,也希望高手指點。
下面是一段遞迴獲取目錄名稱的程式碼:
稍加改動後變成獲取檔名的程式碼,如下,歡迎指正:def subdirs(dir: File): Iterator[File] = { val children = dir.listFiles.filter(_.isDirectory) children.toIterator ++ children.toIterator.flatMap(subdirs _) }
def subdirs2(dir: File): Iterator[File] = {
val d = dir.listFiles.filter(_.isDirectory)
val f = dir.listFiles.filter(_.isFile).toIterator
f ++ d.toIterator.flatMap(subdirs2 _)
}
最後再稍微改改,即可獲得指定目錄下所有的檔名和目錄名:
def subdirs3(dir: File): Iterator[File] = { val d = dir.listFiles.filter(_.isDirectory) val f = dir.listFiles.toIterator f ++ d.toIterator.flatMap(subdirs3 _) }