这个工具源自于我的一个需求,
我将文档都保存在了硬盘上,只不过由于分布不够大而只能分开放置于多个文件夹中。
有时候我需要将这些数据进行备份,一张盘也放不下,也就需要备份到多张盘中。
此时问题出现了,如果我往硬盘上新添了一些文档,在我下一次备份的时,我如何准确的筛选出新增的文档。
一般来讲如果只是一个源盘和一个目标盘,用Beyond Compare或者类似的工具就能解决问题。
不过现在是多对多的,问题就变得比较复杂。
因此我就做了这么个东西,
可以将多个目录组成虚拟的文件树再进行比较。文件夹的对应关系直接利用同级文件夹的名称来判断。
我也提供了手工设置文件夹对应关系的功能,不过因为UI方面还没考虑好所以没有加上。
而
文件之间的比较利用两种方案,一种方案在文件被计算过MD5效验的时候直接使用MD5比较;
如果没有MD5的话使用文件大小和最后修改时间比较。
由于文件比较不使用文件名,也就获得不了对应关系,因此目录树下面的所有文件的所有组合都要一一遍历。
同时由于计算MD5效验码需要读取整个文件,时间较长,因此Checksum是需要手动计算和刷新的。
最后就是树可以整棵的被保存到快照文件中,格式是XML的格式,人也可以读。
比较过后,可以某个子树或者单棵整树的相同文件或这新增文件拷贝到一个目录下。
本来希望能直接生成Nero的刻录清单的文件格式,后来找不到相关的资料就只好放弃了。
Download Source Code Project,VS2005 / VS2005 SP1, XP SP2/SP3下通过。
屏幕快照。红色表示新增文件,蓝色表示相同文件,黄色表示不完全对应。