首页  >  文章  >  后端开发  >  如何使用 7zip 在 Go 1.2 中解压受密码保护的 ZIP 文件?

如何使用 7zip 在 Go 1.2 中解压受密码保护的 ZIP 文件?

Patricia Arquette
Patricia Arquette原创
2024-11-04 03:12:02974浏览

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