groovy 如何在Gradle中比较文件/文件夹?

li9yvcax  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(201)

我需要在Gradle中编写一个脚本,将2个文件夹作为输入。这两个文件夹都包含〈1000个文件(大多数是图像),结构相当相似。输出应该是更改的文件列表,以及它们之间的差异(添加文件/删除文件/更改文件)。
编辑:这里有一个示例脚本https://gist.github.com/igormukhin/71d780c4274336eeb297。唯一的问题是它按时间戳进行比较。

whlutmcx

whlutmcx1#

我最近编写了一些类似于你所要求的东西:DirectoryDifferenceCollector;然而,它实际上比较文件的内容(作为哈希),而不是时间戳。如果符合您的需要,我愿意更新它以接受可配置的策略,或者您可以只使用所涉及的概念。
基本上,它会扫描两个目录,并确定A和B中缺少的文件,然后还确定哪些文件是两个目录共有的,但内容不同。
结果收集在DirectoryDifference对象中,每个类别具有各自的文件路径。

wbrvyc0a

wbrvyc0a2#

我很想使用diff

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

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

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

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

int status = process.waitFor()

许多常见的操作系统都安装了diff,但Windows可能没有。

相关问题