gpt4 book ai didi

file - 在 Scala 中查找与通配符字符串匹配的文件

转载 作者:行者123 更新时间:2023-12-01 20:12:09 27 4
gpt4 key购买 nike

如何获取给定目录中与通配符匹配的所有文件的Array[io.BufferedSource]

即,如何定义一个方法io.Source.fromDir使得

val txtFiles: Array[io.BufferedSource] = io.Source.fromDir("myDir/*.txt") // ???

注意到FileUtilsApache Commons IO ,但更优选的是基于 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

关于file - 在 Scala 中查找与通配符字符串匹配的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27544165/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com