我必须根据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。
答案 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")