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

如何使用 7zip 在 Go 1.2 中解壓縮受密碼保護的 ZIP 檔案?

Patricia Arquette
Patricia Arquette原創
2024-11-04 03:12:021033瀏覽

How to Unzip Password-Protected ZIP Files in Go 1.2 Using 7zip?

在Go 1.2 中解壓縮受密碼保護的ZIP 檔案

os/exec 套件提供了一種與外部命令互動的便捷方式。若要在 Go 1.2 中使用 7zip 解壓縮加密的 ZIP 文件,請考慮以下事項:

archive/zip 套件提供基本的 ZIP 操作功能。您可以透過 os/exec 使用 7zip,而不是使用它來提取受密碼保護的 ZIP 檔案。

這是一個插圖:

<code class="go">import (
    "fmt"
    "os/exec"
    "strings"
)

func extractZipWithPassword() {
    fmt.Printf("Unzipping `%s` to directory `%s`\n", zipPath, extractPath)
    commandString := fmt.Sprintf(`7za e %s -o%s -p"%s" -aoa`, zipPath, extractPath, zipPassword)
    commandSlice := strings.Fields(commandString)
    fmt.Println(commandString)
    c := exec.Command(commandSlice[0], commandSlice[1:]...)
    e := c.Run()
    checkError(e)
}</code>

使用7zip 的示例程序

<code class="go">package main

import (
    "fmt"
    "os"
    "os/exec"
    "path/filepath"
    "strings"
)

var (
    // Your variables and paths...
)

func main() {
    fmt.Println("# Setup")
    //...
    fmt.Println("# Answer to question...")
    extractZipWithPassword()
    //...
    fmt.Println("Done.")
}</code>

輸出:

# Setup
# Answer to question...
Unzipping `test/src/sample.zip` to directory `test/extracted`
7za e test/src/sample.zip -otest/extracted -p"42" -aoa
Reading test/extracted/name.txt
Done.

此方法允許您在Go 1.2中使用 7zip 解壓縮受密碼保護的 ZIP 檔案。

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

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