在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中文網其他相關文章!