1. 程式人生 > >Scala 獲取指定目錄下的所有檔案

Scala 獲取指定目錄下的所有檔案

       最近在學習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 _)
	}