在Scala中查找与通配符String匹配的文件
发布时间:2020-12-16 18:41:29 所属栏目:安全 来源:网络整理
导读:如何获取与给定目录中的通配符匹配的所有文件的Array [io.BufferedSource]? 即,如何定义一个方法io.Source.fromDir这样 val txtFiles: Array[io.BufferedSource] = io.Source.fromDir("myDir/*.txt") // ??? 在Apache Commons IO中注意到FileUtils,但更优选
如何获取与给定目录中的通配符匹配的所有文件的Array [io.BufferedSource]?
即,如何定义一个方法io.Source.fromDir这样 val txtFiles: Array[io.BufferedSource] = io.Source.fromDir("myDir/*.txt") // ??? 在Apache Commons IO中注意到FileUtils,但更优选的是基于Scala API的方法,没有外部依赖性. 解决方法scala> import reflect.io._,Path._ import reflect.io._ import Path._ scala> val r = """.*.scala""".r r: scala.util.matching.Regex = .*.scala scala> "/home/amarki/tmp".toDirectory.files map (_.name) flatMap { case n @ r() => Some(n) case _ => None } res0: Iterator[String] = non-empty iterator scala> .toList res1: List[String] = List(bobsrandom.scala,...) 或递归 scala> import PartialFunction.{ cond => when } import PartialFunction.{cond=>when} scala> "/home/amarki/tmp" walkFilter (p => p.isDirectory || when(p.name) { | case r() => true }) res3: Iterator[scala.reflect.io.Path] = non-empty iterator (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |