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