我有一个需要将文件复制到某个位置的任务.如果文件已存在于目标中,则需要重命名这些目标文件(附加.bak).如果目标文件不存在,则应该只放置文件.
目前我有这个:
<target name="install-jsps">
<copy todir="target">
<fileset dir="source"/>
<globmapper from="*.jsp" to="*.jsp.bak"/>
</copy>
</target>
Run Code Online (Sandbox Code Playgroud)
然而,这会重命名源文件,而我想在复制源文件之前重命名目标文件.我无法重命名整个目标文件夹,因为某些目标文件不在源文件集中.
我最好不要使用像ant-contrib这样的外部库.
您可以在两个复制任务中执行此操作:一个用于进行备份,另一个用于从源中复制新文件.您需要的额外位是用于进行备份的文件集中的present选择器.选择器允许您仅备份即将被取代的文件,即源目录中存在的文件.
<copy todir="dest">
<fileset dir="dest" includes="*.jsp">
<present targetdir="source" />
</fileset>
<globmapper from="*" to="*.bak" />
</copy>
<copy todir="dest">
<fileset dir="source" includes="*.jsp" />
</copy>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2869 次 |
| 最近记录: |