首頁 >後端開發 >Golang >如何在 Go 中解壓縮受密碼保護的 ZIP 檔案?

如何在 Go 中解壓縮受密碼保護的 ZIP 檔案?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-31 16:32:01593瀏覽

How to Unzip Password-Protected ZIP Files in Go?

在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 函數執行命令並檢查是否有錯誤。

其他資源

  • [7-Zip 官方網站](https ://www.7-zip.org/)
  • [7-Zip 使用者指南](https://wiki.7-zip.org/7-Zip_User_Guide)
  • [前往os/exec 套件文件](https://golang.org/pkg/os /exec/)

注意:

雖然這種方法依賴於作為一個外部工具,它提供了一個簡單的解決方案來處理Go 中受密碼保護的ZIP 檔案。

以上是如何在 Go 中解壓縮受密碼保護的 ZIP 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn