使用Ant查找具有最新版本号的文件

时间:2014-07-01 06:50:52

标签: file search ant

我想使用ant查找具有最新版本号的文件。例如,我有一个名为tomcat的文件目录,其中包含以下文件:

  • apache-tomcat-6.0.37.zip
  • apache-tomcat-6.0.38.zip
  • apache-tomcat-6.0.39.zip

我希望ant确定apache-tomcat-6.0.39.zip是最新文件。有没有办法做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:3)

使用资源集合,请参阅lastsort。 F.E. :

<project>

 <path id="foo">
  <last>
    <sort>
      <fileset dir="C:/some/path" includes="**/apache-tomcat-*.zip"/>
    </sort>
  </last>
 </path>

  <echo>$${foo} => ${toString:foo}</echo>

</project>

输出:

[echo] ${foo} => C:\some\path\apache-tomcat-6.0.39.zip

答案 1 :(得分:2)

  • 使用<pathconvert>从相关的<fileset>获取文件名。
  • 使用<sortlist> natural String order 中的文件名进行排序。
  • 从列表中选择最后文件名。

试试这个:

<fileset dir="${your.base.dir}" id="one">
   <include name="**/apache-tomcat-.*.zip"/>
</fileset>
<pathconvert property="orig.list" refid="one" pathsep=","/>
<sortlist property="sorted.list" value="${orig.list}" delimiter="," />
<propertyregex property="result" input="${sorted.list}" regexp=",?([^,]+?)$" select="\1"/>

inputList:<property name="one" value="a.b-2,a.b-5,a.b-1,a.b-3,a.b-4"/>
outputList:[echo] a.b-5

相关问题