名稱:FilesCompare相同檔案搜尋去除工具
位置:自製工具軟體
目的:比對遊戲版本的檔案差異、去除重複下載的圖片或檔案等。
版本:1.26V
說明:

一開始寫這個程式,是因為從網路上下載大量的圖片,有很多是重複的。由於圖片的數量有
幾十萬張,不可能一個一個點開比對,於是便寫了這個程式,自動找出相同內容的檔案加以
去除。接著擴展到下載的大量遊戲壓縮檔,把相同的遊戲檔都給去除掉。

後來在處理非相同的遊戲壓縮檔時,解壓後發現通常都只有少數幾個檔案不同而已,如存檔、
設定檔等等,有些是少檔、壞檔,有些則是因為版本不同。為了得知那些檔案有差異,這個
程式便擴展成去除相同的檔案,只留下差異的檔案。而為得知各檔案的差異所在,則再增加
了比對檔案內容的功能。此為個人在整理遊戲檔正確性與版本差異時的有力幫手。

*** 主畫面



1.搜尋目錄:要搜尋相同檔案的目錄。可以有多個,以分號或逗號隔開,列在前面的目錄會
  優先搜尋。
2.副檔名:例如*.txt等帶有萬用字元的檔名比對字串,以進一步篩選要搜尋的檔案。可以
  有多個,以分號或逗號隔開。
3.找到相同檔案時的處理動作(參見後述)。
4.只刪同名檔案:勾選時,只會比對相同檔名的檔案內容。如果是比對遊戲版本的檔案差異,
  請加以勾選。如果是在找相同的圖片或檔案,則不用勾選。
5.忽略檔尾xx byte資料:某些遊戲在安裝時,會將安裝資訊附加在所有檔案的後面(例如
  模擬螞蟻會附加256 byte安裝資訊),無論如何比對,各檔案都不相同。此時藉由忽略這
  些額外附加的資訊,才能真正比對出檔案是否相同。
6.比對同名同大小檔案:如果找到相同檔名、檔案大小相同,而內容不同時,是否進行檔案
  內容的差異比對。通常會在刪除完所有相同檔案後,才會勾選此選項進行二次處理(參見
  後述)。
7.開始搜尋:開始尋找相同內容檔案,視窗最下方會顯示目前搜尋的目錄檔名。
8.停止搜尋:停止目前的搜尋工作。
9.結束:結束離開本程式。
10.比對檔案:直接進入比對檔案對話視窗,進行內容的差異比對(參見後述)。
11.小工具:提供一些好用的小工具(參見後述)。

當搜尋到相同內容檔案時,如果勾選的是詢問,則會出現下列詢問視窗,否則便會直接刪掉
第一個檔案,或是第二個檔案(一律移至資源回收筒)。



按左邊的刪除,會刪掉指定的檔案。其他功能為:

1.略過:忽略這兩個相同內容的檔案不處理。
2.都刪第一檔:不再詢問,之後自動刪除第一個檔案。
3.都刪第二檔:不再詢問,之後自動刪除第二個檔案。
4.結束搜尋:停止目前的搜尋工作。

*** 比對檔案

當按下[比對檔案]按鈕,或是勾選比對同名同大小檔案,而系統找到有差異的同名檔案時,
便會出現下列視窗。



1.檔案一:要比對的第一個檔案。
2.檔案二:要比對的第二個檔案。
3.比對位置偏移byte數:某些執行檔會因解壓程式的關係,而造成實際程式碼位置有所偏移,
  可利用此設定進行實際程式的比對。不過通常都不必設定。
4.開始比對:進行內容差異比對(參見後述)。
5.結束比對:離開本視窗,回到主畫面或繼續搜尋工作。
6.中斷搜尋:停止目前的搜尋工作。

開始比對後,會顯示檔案比對結果如下(數值均為16進位Hex):



左邊8位數字為右邊資料所在的檔案位置,右邊奇數行為檔案一的資料內容,偶數行為檔案二
的資料內容。標示--表示資料相同、沒有異動,否則便會顯示相異部份的資料內容。

將未破解原始檔放在檔案一,破解後檔案放在檔案二,很容易便能找出破解碼(執行檔若有
壓縮,要先解壓)。

*** 小工具

1.處理修改碼

這是為了方便處理本站提供的各種遊戲修改碼所設,避免玩家自行使用編輯器修改時,輸入
錯誤數字造成問題。尤其是需要大量修改碼的遊戲,例如魔法門6等。



要處理的檔案裡,輸入想要修改的檔名(遊戲中的檔案,包括執行檔或資料檔)。修改碼的
部份,則直接貼上本站標示的修改碼即可。按下[開始處理],便會顯示各修改碼成功取代
的次數,請務必比對次數是否正確。



成功修改的新檔案,會放在與原修改檔相同的目錄裡,並增加部份檔名"-update"。將之改回
原修改檔名即可。

*** 版本更新內容

1.25V (2024/04/28)

1.比對檔案時,若檔案很大,差異部份又很多時,限制只顯示512x2行的差異部份,避免過多
  的輸出資料造成記憶體不足。

1.26V (2024/10/29)

1.輸入檔名的地方,增加可以透過視窗選擇檔案名稱的按鈕。