Ant可以从两个目录中删除_identical_文件吗?

时间:2019-04-25 11:12:44

标签: file ant

我知道Ant可以从两个目录中删除具有匹配文件名的文件。 [1]。

但是,我希望测试文件是否相同-如果它们是字节相同的副本(或者也许相同大小就足够了),我只想删除它们。

创建自己的Ant任务是唯一的方法吗?

背景:我定期分发一个zip数据文件。为了节省带宽,我希望切换为仅分发数据文件的增量。为此,我需要知道自上一版本以来没有更改过哪些文件-仅识别新文件还不够。

[1]。 Delete duplicate files using ant?

1 个答案:

答案 0 :(得分:1)

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