Scala - 如何只遍历与目录中特定字符串匹配的文件?

时间:2017-05-02 20:46:02

标签: java regex scala

我有一个目录,文件看起来像part-00000,part-00001等。还有其他文件,我不想迭代,所以我想做一些形式的模式匹配/正则表达式/过滤以"部分 - "。

开头的文件名

如何仅浏览以" part - "开头的文件?

4 个答案:

答案 0 :(得分:0)

  1. 您可以使用此正则表达式part-.*例如(demo
  2. 如果其余部分仅包含数字,则可以使用part-\d*demo
  3. 如果您只想进行部分游戏,接着是5个号码part-\d{5,5}demo

答案 1 :(得分:0)

前提是您已经拥有文件列表:

dateStr = source.replaceAll("\\p{C}", "");

我们选择列表并首先应用过滤器,然后映射每个元素。 您可以在地图中添加所需的任何逻辑。

答案 2 :(得分:0)

您可以使用过滤器:

snapPoint

答案 3 :(得分:0)

您可以定义如下函数:

def listFiles(file: File, pattern: String): Array[File] = {
  val files = file.listFiles()
  val regex = pattern.r
  files
  .filter(f => f.isFile() && regex.findFirstIn(file.getName).isDefined)
  .toArray
}

并使用directorypattern进行调用。如您所希望的所有文件都以part-开头,则模式为part-*。以下是示例调用

val files = listFiles(new File("path), "part-*")