【问题标题】:Ant copy files to dir while renaming original filesAnt在重命名原始文件时将文件复制到dir
【发布时间】:2012-12-01 05:39:11
【问题描述】:

我有一项任务需要将文件复制到某个位置。如果文件已存在于目标中,则需要重命名这些目标文件(附加 .bak)。如果目标文件不存在,则应将文件放置到位。

目前我有这个:

<target name="install-jsps">
    <copy todir="target">
        <fileset dir="source"/>
        <globmapper from="*.jsp" to="*.jsp.bak"/>
    </copy>
</target>

然而,这会重命名 source 文件,而我想在复制源文件之前重命名 target 文件。我无法重命名整个目标文件夹,因为某些目标文件不在源文件集中。

最好我不想使用像 ant-contrib 这样的外部库。

【问题讨论】:

    标签: ant copy backup


    【解决方案1】:

    您可以通过两项复制任务来完成:一项进行备份,一项从源复制新文件。您需要的额外位是用于进行备份的文件集中的present selector。选择器允许您仅备份即将被取代的文件,即源目录中存在的文件。

    <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>
    

    【讨论】:

    • 太棒了!不知道present 标签。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    相关资源
    最近更新 更多