我想使用ant查找具有最新版本号的文件。例如,我有一个名为tomcat的文件目录,其中包含以下文件:
我希望ant确定apache-tomcat-6.0.39.zip是最新文件。有没有办法做到这一点?
谢谢!
答案 0 :(得分:3)
<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