无法使用Groovy脚本按日期对文件进行排序

时间:2019-05-10 11:44:59

标签: groovy

我有一个目录(jars),其中包含许多具有不同创建日期的.jar文件。我尝试使用以下代码按日期升序/降序进行排序,但不起作用。

Jar=[]
Date createdDate = new Date()
path = "/home/users/DIT/jars/"
new File(path).eachFileMatch(~/.*.jar/) {
      Jar.add(it.getName())
}  

return Jar.sort{it.createdDate}

我尝试了这些,但没有一个可以正常工作:

  • return Jar.sort{it.createdDate} //不按日期排序
  • return Jar.sort{-it.createdDate} //不按日期排序
  • return Jar.sort{createdDate} //仅按日期排序1个文件(最后修改的jar),其他按随机顺序排列
  • return Jar.sort{ a,b -> b.lastModified() <=> a.lastModified() } //不按日期排序
  • return Jar.sort{a,b-> b.createdDate<=>a.createdDate}} //不按日期排序

1 个答案:

答案 0 :(得分:1)

文件对象上没有属性createdDate

但是有一种lastModified()方法

所以这应该起作用:

Jar=[]
path = "/11/server/wso2ei-6.3.0/lib/"
new File(path).eachFileMatch(~/.*.jar/) {
      Jar.add(it)
}  

return Jar.sort{it.lastModified()}

如果您只想返回姓名:

return Jar.sort{it.lastModified()}.collect{it.name}