You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Groovy获取/tmp目录下最新的JSON文件?

解决Groovy获取/tmp目录下最新JSON文件的问题

其实把你现有的两个需求合并到一起就行啦!核心思路是先筛选出所有JSON文件,再按修改时间排序取最新的那个,直接给你整合好的代码:

def latestJsonFile = new File('/tmp').listFiles()?.findAll { 
    it.isFile() && it.name ==~ /.*\.json$/ 
}?.sort { -it.lastModified() }?.head()

我来拆解下这段代码的逻辑,帮你理解每一步:

  • listFiles()?:获取/tmp目录下的所有文件/目录,末尾的?是为了避免目录不存在时触发空指针异常
  • findAll { ... }:筛选出符合两个条件的文件:
    1. it.isFile():确保是文件(排除子目录)
    2. it.name ==~ /.*\.json$/:用严格正则匹配文件名,确保后缀是.json(这里用==~比=~更精准,不会匹配到比如test.json.txt这种文件)
  • sort { -it.lastModified() }:按文件最后修改时间倒序排序,最新修改的文件会排在最前面
  • head():取排序后的第一个元素,也就是我们要找的最新JSON文件

另外补充个小细节:如果/tmp目录下没有任何JSON文件,latestJsonFile会返回null,你可以加个简单的判空处理:

if (latestJsonFile) {
    println "找到最新JSON文件:${latestJsonFile.absolutePath}"
} else {
    println "/tmp目录下没有符合条件的JSON文件"
}

对比你之前的代码,你之前用find只能拿到第一个匹配的JSON文件,但没有做时间排序,这就没法保证是最新的。换成findAll拿到所有JSON文件再排序,就能完美满足你的需求啦!

内容的提问来源于stack exchange,提问作者Colas06

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:11:09