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

syd*_*ydd 5 diff groovy build-process gradle

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

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

cjs*_*hno 4

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

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

结果收集在 DirectoryDifference 对象中,其中包含每个类别各自的文件路径。

  • 由于重构为单级项目,此答案中引用的代码似乎已移动。它现在似乎位于[此处](https://github.com/cjstehno/vanilla/blob/master/src/main/groovy/com/stehno/vanilla/io/DirectoryDifferenceCollector.groovy)。 (2认同)