2012-01-09 73 views
2

我有以下文件结构:如何在Ant中复制目录而不删除目标目录中的现有文件?

  • FolderToBeCopied
    • 文件夹1
      • somefile1
      • somefile2

我复制FolderToBeCopied给已经包含文件的位置:

  • DestinationFolder
    • 文件夹1
      • anotherfile1
      • anotherfile2

我复制使用FOL降脂在我的Ant构建脚本:

<copy overwrite="true" todir="DestinationFolder"> 
      <fileset dir="FolderToBeCopied" includes="**"> 
      </fileset> 
     </copy> 

然而,当我运行构建脚本,它复制文件somefile1和somefile2到文件夹1在目的地,而是在文件夹1(即已经删除的文件。 anotherfile1,anotherfile2)。有没有办法阻止它删除目标文件夹中已有的文件?

回答

1

是:在构建脚本中找到delete元素,删除DestinationFolder并删除它。

copy doesn't deleteoverwrite只意味着“复制即使目标比源更早”。

+1

另一种可能性是destinationFolder不在那里摆在首位。然后它可以让人认为它已被删除。 – 2013-04-11 11:59:28

0

为了防止在目标文件夹中现有文件删除,你可以做一个备份后附加一个时间戳的文件名:

<project name="demoSO" basedir="."> 

    <tstamp> 
    <format property="touch.time" pattern="yyMMddHHmmssSSS"/> 
    </tstamp> 

    <target name="copyMyFiles"> 
    <copy todir="DestinationFolder" includeemptydirs="false"> 
     <fileset dir="FolderToBeCopied"> 
     </fileset> 
     <mapper type="glob" from="*" to="*-${touch.time}"/> 
    </copy> 
    </target> 

</project> 
相关问题