Directory 比较同一文件的两个不同目录

Directory 比较同一文件的两个不同目录,directory,compare,beyondcompare,bc,Directory,Compare,Beyondcompare,Bc,是否有任何工具可以比较相同命名文件的2个目录(具有不同的子目录) 例如,DirA有subdir DirA1,DirA1有一个名为file.cpp的文件 DirB有file.cpp Dira->DirA1->file.cpp和DirB->file.cpp 因此,如果我将这两个dir与BC进行比较,BC不会比较这两个文件。这会让他们两边都成为孤儿 我们可以编写任何BC脚本来比较这两个文件吗 PS:我可以在两个文件夹中都有10-100个文件进行比较。关键是如何使比较工具查找匹配的文件名,而不考虑目录级

是否有任何工具可以比较相同命名文件的2个目录(具有不同的子目录)

例如,DirA有subdir DirA1,DirA1有一个名为file.cpp的文件

DirB有file.cpp

Dira->DirA1->file.cpp和DirB->file.cpp

因此,如果我将这两个dir与BC进行比较,BC不会比较这两个文件。这会让他们两边都成为孤儿

我们可以编写任何BC脚本来比较这两个文件吗

PS:我可以在两个文件夹中都有10-100个文件进行比较。关键是如何使比较工具查找匹配的文件名,而不考虑目录级别


我希望我的问题在这里有意义

除了编写脚本,这里有一个快速而肮脏的方法来实现这一点:

  • 创建两个临时目录-
    FlatA
    FlatB
  • 将原始目录
    DirA
    DirB
    压缩到单独的Zip文件中-
    ArchiveA.Zip
    ArchiveB.Zip
  • 将这两个归档文件分别解压到
    FlatA
    FlatB
    中,无路径
  • 使用BeyondCompare比较“展平”文件夹
    FlatA
    FlatB

  • 3在查看菜单中有一个选项(忽略文件夹结构),该选项正是您想要的。它迭代每个文件的所有子文件夹,并在单个级别上显示它们,其中文件根据名称对齐。如果有多个同名文件,则优先考虑将其与相同目录结构对齐。

    如果不同子文件夹中有同名文件,该怎么办?@NeonGlow他特别想比较两个目录中同名文件的内容,而不管其嵌套级别如何,因此,听起来似乎这项任务不需要考虑一方相同的名字——这就是问题的关键所在。在我建议的解决方案中,任何提取工具(如WinZip)都会提示是否覆盖、跳过或可能重命名同名文件(当删除相关路径时)。我不明白存档有何帮助。我想我的问题不清楚。我想要一个工具来比较一个特定的文件,不管它的父目录名是什么。Dira->DirA1->file.cpp和DirB->file.cpp。因此,如果我比较DirA和DirB,file.cpp在DirB中不应该是孤立的,工具应该尝试将file.cpp(DirB的)与DirA/DirA1的file.cpp进行比较。可能吗?我理解你的问题。归档会有所帮助,因为这是在Windows上展平目录(解压时)的最简单方法,即将子目录中的所有文件转储到单个目录中。在这一点上,您有两个只包含文件的目录—没有子目录,您可以在上面运行BC。如果没有存档选项,我将编写一些脚本(Perl、batch、Bash等),在两个层次结构之间查找匹配的文件,并通过
    diff
    运行每个匹配对。然后它只能将有差异的文件对转储到两个临时目录中,供BC手动比较。谢谢Craig。。。我有BC2,刚刚安装了BC3并进行了检查。它按照要求工作。Winmerge或任何其他开源软件包是否支持此功能?@Bolt BC3是我所知道的唯一一个支持此功能的软件包,但我已经有一段时间没有认真评估我们的竞争对手了。我刚刚浏览了Windows上可用的开源版本,但没有一个可以。BC可以让你下载一个功能齐全的试用版,可以在内存中使用30天