Ant <copy todir =“”> zipfileset,前缀为</copy>

时间:2012-11-09 15:04:39

标签: ant

假设C:/dir2/有一个名为file2.txt的文件 C:/dir3/有一个名为file3.txt

的文件

这个蚂蚁脚本:

<copy todir="C:/dir1">
    <zipfileset dir="C:/dir2" prefix="dirprefix2"/>
    <zipfileset dir="C:/dir3" prefix="dirprefix3"/>
</copy>

将文件复制到:

C:/dir1/file2.txt
C:/dir1/file3.txt

但我希望将其复制到:

C:/dir1/dirprefix2/file2.txt
C:/dir1/dirprefix3/file3.txt

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

属性prefix仅在创建档案时使用。

以下应该可以正常工作:

<copy todir="C:/dir1/dirprefix">
    <zipfileset dir="C:/dir2"/>
</copy>

或者,您可以使用宏:

<macrodef name="mycp">
  <attribute name="dir"/>
  <attribute name="todir" default="C:/dir1"/>
  <attribute name="prefix"/>
  <sequential>
    <copy todir="@{todir}/@{prefix}">
        <fileset dir="@{dir}/"/>
    </copy>
  </sequential>
</macrodef>

然后每个目录将有一行,如下所示:

<mycp dir="C:/dir2" prefix="dirprefix2"/>
<mycp dir="C:/dir3" prefix="dirprefix3"/>
...