我正在尝试返回一个目录列表,以填充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.date
和it.modified
,但这些似乎无效。)我发现了一些看起来很有前途的virtualeyes代码:
new File(path-to-your-directory).eachFileRecurse{file->
println file.lastModified()
}
但是,我无法将正确的语法拼凑在一起,以适应我正在做的事情。我想也许Java方法lastModified()
可能会有一些解决方案,但我也无法找到成功。
答案 0 :(得分:7)
不添加名称,而是添加文件。然后按反向排序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