Ant copy files without overwriting

Is there any command in ant to copy files from one folder structure to another without checking the last modified date/time overwriting files. Basically I want all extra files from folder A to folder B. That is: no files of folder B are replaced but extra files of folder A comes to folder B.

I saw "ant copy" and "ant move" commands, but didn't help. Any suggestions.

18
задан dim8 12 March 2018 в 17:29
поделиться

3 ответа

Просто используйте тег с набором файлов как ** / * и явно установите для атрибута перезаписи значение false. Я использую это все время:

<copy todir="/your/target" overwrite="false">
  <fileset dir="/your/source" />
</copy>
2
ответ дан 30 November 2019 в 06:39
поделиться

Если нет элегантного решения, вы всегда можете сделать это в следующей последовательности:

  1. folder to
  2. < скопируйте> файлов из папки в
  3. файлов из папки в < B> с использованием overwrite = true

(Делайте наоборот, заменяя новые файлы, а не старые)

3
ответ дан 30 November 2019 в 06:39
поделиться

Простым решением вашей проблемы является использование параметра перезаписи для команды копирования. Это гарантирует, что файлы не будут заменены

    <copy todir="B" verbose="true" overwrite="false">
        <fileset dir="A"/>
    </copy>

Более сложным примером является использование селектора набора файлов

    <copy todir="B" verbose="true">
        <fileset dir="A">
            <present targetdir="B" present="srconly"/>
            <date datetime="01/01/2001 12:00 AM" when="after"/>
        </fileset>
    </copy>

В этом примере я использовал селектор присутствует , чтобы выбрать файл, который не присутствует в целевом каталоге (функционально то же, что и проверка перезаписи), и я добавил дополнительное условие date , чтобы проверить, был ли файл изменен с определенной даты.

Список селектора довольно обширен.

2
ответ дан 30 November 2019 в 06:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: