我們有多個.NET Web應用程序,它們共享相當多的通用庫。他們都不在GAC中。對具有多個相同文件的文件系統目錄樹進行高效壓縮
部署約束是所有這些Web應用程序都有專用目錄。這會導致總目錄結構中出現大量重複的dll。
此目錄結構是從一個zip歸檔文件中提取的。
因此,zip存檔在不同的目錄中找到了許多相同的文件。
這是一個巨大的冗餘,我希望在zip壓縮文件中消除冗餘,如果在磁盤上創建冗餘文件,我不在乎。我看到優化zip的兩種方法:
- 使用Windows符號鏈接和連接來減少物理相同文件的數量。
- 使用智能壓縮不會壓縮相同的文件數據兩次。
方法1
我用拉鍊和7Z測試壓縮目錄結構。我使用路口和文件符號鏈接作爲減少磁盤空間的手段。
不幸的是,zip和7z都壓縮了連接,就好像它們是完整的目錄一樣。一個符號鏈接被壓縮爲一個零長度文件7z,其性質作爲符號鏈接在解壓縮時丟失。 zip會遍歷符號鏈接並壓縮目標數據,這會導致歸檔中的文件內容重複。
總之,我沒有使用第一種方法消除重複文件數據。
方法2
我想剛好被http://sourceforge.net/p/sevenzip/feature-requests/794/描述。但是,它僅僅是一個功能請求。
對功能請求的評論提到lrzip作爲一個高效的大型文件壓縮器。我必須檢查它,但它似乎並不像我希望的那樣消除重複的文件數據。
任何幫助,歡迎。
我沒有在一天結束的時候嘗試lrzip。 – mark 2015-03-14 18:04:51