How do I list all files in a subdirectory in scala?

后端 未结 19 1522
旧巷少年郎
旧巷少年郎 2020-11-28 03:35

Is there a good \"scala-esque\" (I guess I mean functional) way of recursively listing files in a directory? What about matching a particular pattern?

For example re

19条回答
  •  旧时难觅i
    2020-11-28 03:56

    I would prefer solution with Streams because you can iterate over infinite file system(Streams are lazy evaluated collections)

    import scala.collection.JavaConversions._
    
    def getFileTree(f: File): Stream[File] =
            f #:: (if (f.isDirectory) f.listFiles().toStream.flatMap(getFileTree) 
                   else Stream.empty)
    

    Example for searching

    getFileTree(new File("c:\\main_dir")).filter(_.getName.endsWith(".scala")).foreach(println)
    

提交回复
热议问题