這個(gè)工具源自于我的一個(gè)需求,
我將文檔都保存在了硬盤上,只不過由于分布不夠大而只能分開放置于多個(gè)文件夾中。
有時(shí)候我需要將這些數(shù)據(jù)進(jìn)行備份,一張盤也放不下,也就需要備份到多張盤中。
此時(shí)問題出現(xiàn)了,如果我往硬盤上新添了一些文檔,在我下一次備份的時(shí),我如何準(zhǔn)確的篩選出新增的文檔。
一般來講如果只是一個(gè)源盤和一個(gè)目標(biāo)盤,用Beyond Compare或者類似的工具就能解決問題。
不過現(xiàn)在是多對(duì)多的,問題就變得比較復(fù)雜。
因此我就做了這么個(gè)東西,
可以將多個(gè)目錄組成虛擬的文件樹再進(jìn)行比較。文件夾的對(duì)應(yīng)關(guān)系直接利用同級(jí)文件夾的名稱來判斷。
我也提供了手工設(shè)置文件夾對(duì)應(yīng)關(guān)系的功能,不過因?yàn)閁I方面還沒考慮好所以沒有加上。
而
文件之間的比較利用兩種方案,一種方案在文件被計(jì)算過MD5效驗(yàn)的時(shí)候直接使用MD5比較;
如果沒有MD5的話使用文件大小和最后修改時(shí)間比較。
由于文件比較不使用文件名,也就獲得不了對(duì)應(yīng)關(guān)系,因此目錄樹下面的所有文件的所有組合都要一一遍歷。
同時(shí)由于計(jì)算MD5效驗(yàn)碼需要讀取整個(gè)文件,時(shí)間較長(zhǎng),因此Checksum是需要手動(dòng)計(jì)算和刷新的。
最后就是樹可以整棵的被保存到快照文件中,格式是XML的格式,人也可以讀。
比較過后,可以某個(gè)子樹或者單棵整樹的相同文件或這新增文件拷貝到一個(gè)目錄下。
本來希望能直接生成Nero的刻錄清單的文件格式,后來找不到相關(guān)的資料就只好放棄了。
Download Source Code Project,VS2005 / VS2005 SP1, XP SP2/SP3下通過。

屏幕快照。紅色表示新增文件,藍(lán)色表示相同文件,黃色表示不完全對(duì)應(yīng)。