gpt4 book ai didi

groovy - 返回 Groovy 中按修改时间排序的文件列表

转载 作者:行者123 更新时间:2023-12-04 23:20:17 28 4
gpt4 key购买 nike

我正在尝试返回目录列表以填充 Jenkins (Scriptler) 中的下拉菜单。这是我到目前为止:

import groovy.io.FileType

String snapshotBase="/(path-I-wish-to-look-at)/"
def result=[];assert result.size()==0
def releaseDir=new File(snapshotBase)
if ( releaseDir.exists() ) {
releaseDir.eachFile FileType.DIRECTORIES,{
result.add(it.name)
}
}
return result

这将返回目录列表,但为了方便起见,我希望对它们进行排序,以便最近修改的目录出现在列表的顶部/开头。我是 Groovy 和 Java 的新手,但我已经尝试了一些选项。我想也许 FileType.DIRECTORIES 会有一些属性不仅仅是名字,但到目前为止我还没有找到我要找的东西。 (我猜是 it.dateit.modified ,但这些似乎是无效的。)我从 virtualeyes 中找到了一段看起来很有希望的代码:
new File(path-to-your-directory).eachFileRecurse{file->
println file.lastModified()
}

但是,我无法拼凑出正确的语法来适应我正在做的事情。我在想也许是 Java 方法 lastModified()会有一些解决方案,但我也未能成功。

最佳答案

添加文件而不是添加名称。然后按反向 lastModified 排序并收集名称( *.name 就像 .collect{it.name} )

def files=[]
("/tmp" as File).eachFile groovy.io.FileType.DIRECTORIES, {
files << it
}
def result = files.sort{ a,b -> b.lastModified() <=> a.lastModified() }*.name

关于groovy - 返回 Groovy 中按修改时间排序的文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29150948/

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