如何解决在Ant中复制带有文件名过滤器的最新文件
|| 我正在尝试使用Ant从目录中复制最新文件,理想情况下,我也想对文件名进行过滤(例如:\'* file.java \'),但我没有关于如何做到这一点的任何想法 到目前为止,我已经包含了我的脚本,但是JavaScript中的脚本已被破坏,并且我没有足够的经验来知道为什么。<project name=\"test1\" basedir=\".\">
<property file=\"../local.properties\" />
<property file=\"../build.properties\" />
<property file=\"../default.properties\" />
<target name=\"init\">
<copy todir=\".\">
<fileset dir=\"/path/to/files\">
<scriptselector language=\"javascript\">
var files = basedir.list();
var mostRecent = true;
for(var i = 0; i < files.size(); i++) {
mostRecent = mostRecent && (filename >= files[i]);
}
self.setSelected(mostRecent);
</scriptselector>
</fileset>
</copy>
</target>
</project>
编辑:刚刚意识到该站点,我从上面获得了JavaScript代码,指出该选择器是“仅选择目录中的最新文件,其中每个文件都有一个时间戳作为其文件名”,所以我的示例将无法正常工作,因为它使用名称作为修改日期。这导致了一个问题,即如何以JavaScript(或与Ant一起使用的任何其他语言)获取文件的修改日期。
解决方法
答案是:
<target name=\"init\">
<copy todir=\".\" flatten=\"true\">
<last>
<sort>
<date xmlns=\"antlib:org.apache.tools.ant.types.resources.comparators\"/>
<resources>
<fileset dir=\"/path/to/files/\">
<include name=\"*sdk*\" />
</fileset>
</resources>
</sort>
</last>
</copy>
</target>
编辑:先更改后添加过滤器
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。