Scala:根据文件名称(带有时间戳记模式)列出大于文件的文件

时间:2020-08-10 12:55:58

标签: scala fileutils

我必须根据Scala命名模式中的时间戳列出所有大于特定文件的文件。下面是示例。

可用文件:

log_20200601T123421.log
log_20200601T153432.log
log_20200705T093425.log
log_20200803T049383.log

条件文件:

log_20200601T123421.log-我需要列出所有文件名,这些文件名的名称应大于等于20200601T123421。结果将是

输出列表:

log_20200601T153432.log
log_20200705T093425.log
log_20200803T049383.log

如何在Scala中实现这一目标?我正在尝试使用apache common,但是我看不出它大于等于NameFileFilter。

1 个答案:

答案 0 :(得分:0)

以下代码段可能是一个起点:

import java.io.File

def getListOfFiles(dir: File):List[File] = dir.listFiles.filter(x => x.getName > "log_20200601T123421.log").toList

val files = getListOfFiles(new File("/tmp"))

对于扩展任务来收集来自不同子目录的文件:

import java.io.File

def recursiveListFiles(f: File): Array[File] = {
  val these = f.listFiles
  these ++ these.filter(_.isDirectory).flatMap(recursiveListFiles) 
}

val files = recursiveListFiles(new File("/tmp")).filter(x => x.getName > "log_20200601T123421.log")