Как скопировать каталог в Ant, не удаляя существующие файлы в каталоге назначения? - PullRequest
2 голосов
/ 09 января 2012

У меня следующая файловая структура:

  • FolderToBeCopied
    • folder1
      • somefile1
      • somefile2

Я копирую FolderToBeCopied в папку, в которой уже есть файлы:

  • DestinationFolder
    • folder1
      • anotherfile1
      • anotherfile2

Я копирую с использованием следующего в моем скрипте сборки Ant:

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

Однако, когда я запускаю скрипт сборки, он копирует файлы somefile1 и somefile2 в folder1 в месте назначения, но удаляет файлы, уже находящиеся в folder1 (т. Е. Anotherfile1, anotherfile2). Есть ли способ предотвратить удаление файлов, уже находящихся в папке назначения?

Ответы [ 2 ]

1 голос
/ 09 января 2012

Да: найдите элемент delete в вашем скрипте сборки, который удаляет DestinationFolder и удалите его.

copy не удаляет .overwrite означает только «копировать, даже если цель старше источника».

0 голосов
/ 10 января 2012

Чтобы предотвратить удаление существующих файлов в папке назначения, вы можете сделать резервную копию, добавив временную метку к именам файлов:

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