Может ли Ant удалить _identical_ файлы из двух каталогов? - PullRequest
0 голосов
/ 25 апреля 2019

Мне известно, что Ant может удалять файлы с одинаковыми именами из двух каталогов. [1].

Но я хочу проверить, являются ли файлы идентичными - я хочу удалить их, только если они являются идентичными байтами копиями (или , может быть, идентичного размера будет достаточно).

Является ли создание моей собственной задачи Ant единственным способом сделать это?

Справочная информация: Я регулярно распространяю zip-файлы данных. Чтобы сэкономить пропускную способность, вместо этого я хочу переключиться только на распределение дельты файлов данных. Для этого мне нужно знать, какие файлы не изменились со времени предыдущего выпуска - просто определить новые файлы недостаточно.

[1]. Удалить дубликаты файлов с помощью муравья?

1 Ответ

1 голос
/ 27 апреля 2019

Ant имеет селектор different, который можно применять к коллекциям ресурсов. Он может выбирать файлы по измененному времени, содержимому или обоим.

Вот пример цели, демонстрирующей, как она работает.

<target name="copy-different">
    <delete dir="src_dir" />
    <delete dir="dest_dir" />

    <mkdir dir="src_dir" />
    <mkdir dir="dest_dir" />

    <touch file="src_dir/file1" />
    <touch file="src_dir/file2" />

    <echo file="src_dir/file1" message="identical" />
    <echo file="src_dir/file2" message="different" />

    <touch file="dest_dir/file1" />
    <touch file="dest_dir/file2" />

    <echo file="dest_dir/file1" message="identical" />
    <echo file="dest_dir/file2" message="identical" />

    <copy todir="different" overwrite="true">
        <fileset dir="src_dir">
            <different targetdir="dest_dir" ignoreFileTimes="true" />
        </fileset>
    </copy>
</target>

Только file2 будет скопировано в dest_dir.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...