常見問題(FAQ)
普通用戶常見問題
商業機構可否使用 7-Zip?
可以。7-Zip 是免費軟體,容許任何電腦使用,不須用戶註冊軟體或支付軟體使用費。
如何於 Windows 7 及 Windows Vista 將某檔案類型與 7-Zip 關聯?
您必須以系統管理員身分執行 7-Zip File Manager。首先右擊 7-Zip File Manager 的圖示,然後點擊以系統管理員身分執行,往後就可以到 "工具 / 選項" 改變檔案關聯設定及另外一些選項。
以新版本 7-Zip 製成的 7z 壓縮檔,為何有時會比以舊版本 7-Zip 製成的大?
新版本的 7-Zip(自 15.06 版開始)變更了結實壓縮預設的檔案排序方法。
舊版本 7-Zip(15.06 版之前)的檔案排序方法是「依類型」(「依副檔名」)。
新版本 7-Zip 提供兩種排序方法:
- 依名稱排序 - 預設選項
- 依類型排序 - 須輸入 qs 參數到「加入壓縮檔」視窗中的參數文字框(如用命令行版本則須加入 -mqs 命令行選項)
當字典大小小於檔案的總大小時,排序方法對壓縮比率會有重大影響。如果不同資料夾中有相似類型的檔案,選擇「依類型」排序在部分個案中可以提高壓縮比率。
請注意「依類型」排序亦有缺點,例如 NTFS 磁碟區的排序方法是「依名稱」,如果壓縮檔使用另一排序方法,當進行某些檔案操作時,速度可能會被機械硬碟所限(機械硬碟的搜尋(seek)速度較低)。
總括而言,通過以下方法可提高壓縮比率:
- 提高字典大小,不使用 qs 參數時適用。
- 輸入 qs 參數到「加入壓縮檔」視窗中的參數文字框(如用命令行版本則須加入 -mqs 命令行選項)
如不介意檔案如何排序,只想以較小的字典達至更佳的壓縮比率,那麽請用 qs 模式。
為何 7-Zip 不能開啟部分 ZIP 壓縮檔?
百分之九十九的個案是因為這些壓縮檔的文件頭有錯誤,其他 ZIP 解壓程式忽略這些錯誤,所以能開啟部分有問題的壓縮檔。
如有類似壓縮檔,不用聯絡 7-Zip 的程式設計員,因為問題癥結不在 7-Zip 而在於製作這些壓縮檔的程式。請查明是哪個程式製作的,然後通知它的程式設計員它製成的壓縮檔不符合 ZIP 格式。
除此之外,某些 ZIP 壓縮檔以 7-Zip 不支援的方法編碼,例如 WAVPack(WinZip)。
為何 7-Zip 不能開啟部分 RAR 壓縮檔?
7-Zip 9.20 版只支援 RAR 2/3/4 檔案格式,不支援 RAR5 檔案格式,不過最新版本的 7-Zip 已能開啟 RAR5 壓縮檔。
由 7-Zip 拖放(drag and drop)壓縮檔到微軟視窗的檔案總管時,為何使用暫存檔案?
7-Zip 不知道壓縮檔被放到哪個資料夾,檔案總管才知道,另外檔案總管要求來源是已解壓縮的檔案,故此 7-Zip 解壓縮檔案到暫存資料夾並通知檔案總管,檔案總管再從暫存資料夾複製檔案到最終目的地。
如不想使用暫存檔案,請用 7-Zip 程式內的解壓縮功能,或由 7-Zip 拖放到 7-Zip。
使用命令行介面時,為何無法增加沒有副檔名的檔案到壓縮檔?
您大概是用了 *.* 通配符。7-Zip 並不使用作業系統的通配符語法分析器,故此視 *.* 為任何有副檔名的檔案。如要包括所有檔案,請使用 * 通配符,或完全不用通配符。
為何 -r 命令行選項不如預期般運作?
其實大多數情況都無須使用 -r 選項。就算沒有 -r 選項,7-Zip 都會壓縮子資料夾。
例子 1:
7z.exe a c:\a.7z "C:\Program Files"
壓縮 "C:\Program Files",包括所有子資料夾。
例子 2:
7z.exe a -r c:\a.7z "C:\Program Files"
搜索 C:\ 的子資料夾(例如 "C:\WINDOWS"),找出並壓縮所有 "Program Files"。
如要找出特定副檔名的檔案來壓縮,這時 -r 選項就派上用場:
7z a -r c:\a.zip c:\dir\*.txt
搜索 c:\dir\ 資料夾及它的子資料夾,找出並壓縮所有 *.txt 檔案。
如何將檔案的完整路徑儲存到壓縮檔?
7-Zip 只會儲存檔案的相對路徑(沒有磁碟機代號)。只要用 cd 命令變更當前資料夾(current folder),使所有要壓縮的檔案都在當前資料夾之下,那麽就不須使用完整路徑,只用相對路徑就可以。例子:
cd /D C:\dir1\ 7z.exe a c:\a.7z file1.txt dir2\file2.txt
為何 7-Zip 無法於 32 位微軟視窗使用較大的字典?
32 位微軟視窗只能分配 2GB 的虛擬空間給每一應用程式,而且那 2GB 空間可能不連續(例如被一些 DLL 檔案分間),故此 7-Zip 不能得到一大段連續的虛擬空間。64 位微軟視窗則沒有這個限制,只要實體記憶體足夠,使用任何大小的字典都可以。
如何以安靜模式安裝 7-Zip?
exe 安裝程式:請利用 "/S" 參數進入安靜模式,並使用 /D="C:\Program Files\7-Zip" 參數指定資料夾,注意這些參數是區分大小寫的。
msi 安裝程式:請使用 /q INSTALLDIR="C:\Program Files\7-Zip" 參數。
如何修復損毀的 7z 壓縮檔?
壓縮檔受損後可能出現的兩個情況:
- 能夠開啟壓縮檔並顯示檔案清單,但是當按下「解壓縮」或「測試」時,會出現錯誤訊息:資料有錯誤或 CRC 驗證失敗。
- 開啟壓縮檔時,出現錯誤訊息「無法開啟壓縮檔 'a.7z'」。
修復部分數據是可能的,詳細修復步驟請參看以下網頁:
程式開發人員常見問題
使用 Visual C++ 6.0 編譯 7-Zip 或 LZMA 軟體開發套件時,為何會出現連結錯誤?
要編譯原始碼,您須要 Visual C++ 6.0 或更新版本,另外部分檔案須要 microsoft.com 新版本的 Platform SDK 才可編譯。
如使用 MSVC,請到 "Tools / Options / Directories",然後在 "Include files" 及 "Library files" 兩個資料夾清單上方指定 SDK 資料夾的位置。
由於最新版本的 Platform SDK 不兼容 MSVC6,故此 MSVC6 必須使用 Windows Server 2003 PSDK(2003 年 2 月)。
我可否在商業應用程式中使用 7-Zip 的 EXE 或 DLL 檔案?
可以,但您必須在程式文件中註明 (1) 您使用了 7-Zip 程式的部件,(2) 7-Zip 採用 GNU LGPL 許可證,及 (3) 您必須連結到 www.7-zip.org,即原始碼存放的地方。
如何使我的應用程式支援 7z 壓縮檔?
其中一個方法是利用 7z.dll 或 7za.dll(可從 sf.net 下載)。7za.dll 以 COM 介面運作,但它不使用標準 COM 介面來建立物件,原始碼中的 "CPP\7zip\UI\Client7z" 資料夾有一個小範例。如要完整範例,請參考 7-Zip 本身,因為 7-Zip 也是利用這個 dll 檔案來運作。其他使用 7za.dll 的應用程式有 WinRAR、PowerArchiver 等等。
另一個方法是使用命令行介面的執行檔 7za.exe。
我可否在商業應用程式中使用 7-Zip 的原始碼?
由於 7-Zip 以 GNU LGPL 許可證發布,故此您必須遵從這個許可證的條款。簡言之,任何以 LGPL 許可證發布的原始碼往後必須繼續採用 LGPL 許可證,例如您可修改 7-Zip 的原始碼或編寫一個包裝程序(wrapper)封裝某些 7-Zip 原始碼,然後把它編譯成一個 DLL 檔案,但是此 DLL 檔案的原始碼(包括您做的修改、增添、包裝程序)必須採用 LGPL 或 GPL 許可證,而您的應用程式的其他原始碼則可以採用您自行選擇的許可證。此方案容許普通用戶及程式開發人員修改採用了 LGPL 許可證的原始碼及重新編譯那個 DLL 檔案,這就是自由軟體的概念。詳情請參閱 https://www.gnu.org/。 另外您亦可能有興趣了解一下 LZMA 軟體開發套件,它採用一個條款較為寬鬆的許可證。
Copyright © 2024 Igor Pavlov.
Chinese translation by DevelopersHome.com.