如何在Gradle中区分文件/文件夹?

时间:2015-05-22 16:13:40

标签: groovy gradle diff build-process

我需要在Gradle中编写一个脚本作为输入2个文件夹。 两个文件夹都包含具有相当类似结构的< 1000文件(主要是图像)。 输出应该是已更改的文件列表以及它有何不同(添加文件/已删除文件/已更改文件)。

编辑:下面是一个示例脚本https://gist.github.com/igormukhin/71d780c4274336eeb297。唯一的问题是它按时间戳进行比较。

2 个答案:

答案 0 :(得分:3)

我最近编写了类似于你要求的内容:DirectoryDifferenceCollector;但是,它实际上比较了文件的内容(作为哈希)而不是时间戳。如果符合您的需求,我愿意更新它以接受可配置的策略,或者您可以使用所涉及的概念。

基本上它扫描两个目录并确定A和B中丢失的文件,然后它还确定哪些文件对两个目录都是通用的,但具有不同的内容。

结果收集在DirectoryDifference对象中,并带有每个类别的相应文件路径。

答案 1 :(得分:1)

我很想使用diff

def process = 'diff x y'.execute()

然后,您可以以文本形式访问命令的输出:

println process.err.text
println process.in.text

通过以下方式获取退出状态:

int status = process.waitFor()

许多常见操作系统将随diff一起安装,但Windows可能没有。