2013-07-12 99 views
0

從zip格式規範http://en.wikipedia.org/wiki/Zip可以將具有相同文件名的兩個文件添加到一個zip存檔文件中。 例如,我會做一個拉鍊看起來像如何將兩個具有相同文件名的文件添加到一個zip存檔文件中?

foo.zip 
    --bar.txt 
    --bar.txt 
    --3rd.txt 

有誰知道做到這一點? 我試過linux實用程序zipunzip,它總是覆蓋以前添加的zip條目。 Java類java.util.zip.ZipFile也不起作用。

+0

對不起,在說明書中它說你在問什麼是可能的。 Android基於Unix文件系統,並且需要一個唯一的文件名路徑 –

回答

3

這樣做的一種方法是最初使用唯一名稱創建壓縮 - 例如, bar.txt,car.txt and 3rd.txt。然後在二進制編輯器中打開生成的zip文件並搜索car.txt並用bar.txt替換它。

請注意,應該有兩處需要替換的文件名 - 一個在文件的本地文件頭(位於zip中間的某處),另一個位於中央目錄中(某處接近結尾的拉鍊)。

如果您需要以編程方式執行此操作,我會建議您實際解析中央目錄以在各種標題中查找文件名的確切位置,而不是簡單搜索和替換以避免誤報的可能性。這不是一個非常複雜的格式。

請注意,當您嘗試像這樣解壓縮壓縮文件時,根據您使用的解壓縮程序以及您擁有的選項,可能會收到關於文件名的第二個副本未壓縮時已存在的文件的警告組。

+0

我剛剛嘗試過,使用hexeditor修改zip文件中的名稱,就像一個魅力! – efr4k

相關問題