我知道Ant可以从两个目录中删除具有匹配文件名的文件。 [1]。
但是,我希望测试文件是否相同-如果它们是字节相同的副本(或者也许相同大小就足够了),我只想删除它们。
创建自己的Ant任务是唯一的方法吗?
背景:我定期分发一个zip数据文件。为了节省带宽,我希望切换为仅分发数据文件的增量。为此,我需要知道自上一版本以来没有更改过哪些文件-仅识别新文件还不够。
答案 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
。