NAnt有directory::get-last-write-time和file::get-last-write-time,但我正在寻找一种方法来获取最近一次写入目录(递归)或文件集中文件的时间。
directory :: get-last-write-time似乎很有用,但只有直接在目录中写入文件而不是子目录中的文件才会更新。
有没有办法用库存NAnt执行此操作,还是我必须编写一些内容来处理目录/文件集的所有内容并查找最近的写入时间?
答案 0 :(得分:1)
您可以使用普通的旧<foreach>
循环对NAnt执行此操作。有点尴尬,但它有效:
<target name="go">
<fileset
id="paths"
basedir="C:\foo">
<include name="**/*" />
</fileset>
<!-- preset with Unix epoch -->
<property
name="most.recent"
value="1970-01-01T00:00:00Z" />
<foreach item="File" property="path">
<in>
<items refid="paths" />
</in>
<do>
<property
name="current"
value="${file::get-last-write-time(path)}" />
<property
name="most.recent"
value="${current}"
if="${datetime::parse(current) > datetime::parse(most.recent)}" />
</do>
</foreach>
<echo message="${most.recent}" />
</target>