Ant:如何从目录中选择最新的修改文件?

时间:2011-03-31 10:55:03

标签: ant

假设我有一个目录,其中包含多个具有相同名称前缀和时间戳的文件,例如

my-directory:
- file-0749
- file-1253
- file-2304

如何告诉ANT从我的目录中选择最新修改的文​​件(在这种情况下,这将是文件-2304)?

2 个答案:

答案 0 :(得分:17)

您可以使用TimestampSelector中的ant-contrib任务执行此操作。

<timestampselector property="latest.modified">
  <path>
    <fileset dir="${my-directory.dir}">
      <include name="file-*" />
    </fileset>
  </path>
</timestampselector>

<echo message="${latest.modified}" />

答案 1 :(得分:0)

找到了没有其他库的方法:

<copy todir="${tmp.last.modified.dir}">
    <last id="last.modified">
        <sort>
            <date />
            <fileset dir="${my.dir}" />
        </sort>
    </last>
</copy>
<echo message="last modified file in ${my.dir}: ${ant.refid:last.modified}" />

您可以像echo任务一样直接使用ant.refid:last.modified。不要忘记删除tmp.last.modified.dir