在Go 1.2 中解壓縮受密碼保護的ZIP 檔案
在Go 1.2 中,archive/zip 套件提供了基本的zip 功能,但缺乏支援用於處理受密碼保護的文件。要解壓縮此類文件,建議結合使用 os/exec 套件和 7zip 等外部工具。
使用7zip 提取受密碼保護的ZIP 檔案
以下範例示範如何使用7zip 擷取受密碼保護的ZIP 檔案:
<code class="go">func extractZipWithPassword() { fmt.Printf("Unzipping `%s` to directory `%s`\n", zip_path, extract_path) commandString := fmt.Sprintf(`7za e %s -o%s -p"%s" -aoa`, zip_path, extract_path, zip_password) commandSlice := strings.Fields(commandString) fmt.Println(commandString) c := exec.Command(commandSlice[0], commandSlice[1:]...) e := c.Run() checkError(e) }</code>
在此範例中,我們使用7za 可執行檔建構一個命令字串來提取ZIP 檔案。我們指定檔案路徑、提取目錄、密碼和其他選項來覆蓋現有檔案並更新存檔時間戳記 (-aoa)。然後,我們使用 exec.Command 函數執行命令並檢查是否有錯誤。
其他資源
注意:
雖然這種方法依賴於作為一個外部工具,它提供了一個簡單的解決方案來處理Go 中受密碼保護的ZIP 檔案。
以上是如何在 Go 中解壓縮受密碼保護的 ZIP 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!