首页 > 后端开发 > Golang > 正文

如何在 Golang 中解压受密码保护的 Zip 文件?

Linda Hamilton
发布: 2024-10-31 01:48:29
原创
673 人浏览过

How to Unzip Password-Protected Zip Files in Golang?

在 Golang 中解压受密码保护的 Zip 文件

最近发布的 Golang 1.2 引入了 archive/zip 包。然而,它似乎提供了基本的 zip 功能,并且缺乏对解压缩受密码保护的 zip 文件的支持。为了解决这个问题,另一种方法是使用 7zip。

解决方案:通过 Go 的 os/exec 包使用 7zip

鉴于 7zip 提供了强大的 zip 功能,包括密码-受保护的解压缩,我们可以利用 Go 的 os/exec 包从 Go 代码中执行 7zip 命令。

代码示例

以下 Go 代码演示了如何解压使用 7zip 的受密码保护的 zip 文件:

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

func main() {
    zipPath := "path/to/password-protected.zip"
    extractPath := "path/to/extract/to"
    password := "secret"

    // Construct the 7zip command string
    commandString := fmt.Sprintf(`7za e %s -o%s -p"%s" -aoa`, zipPath, extractPath, password)
    commandSlice := strings.Fields(commandString)

    // Execute the 7zip command
    c := exec.Command(commandSlice[0], commandSlice[1:]...)
    err := c.Run()
    if err != nil {
        panic(err)
    }

    fmt.Printf("Unzipped password-protected zip file to %s\n", extractPath)
}</code>
登录后复制

用法

  • 确保 7zip 已安装并可在您的系统上访问。
  • 将 zipPath 和 extractPath 变量分别调整为受密码保护的 zip 文件的实际位置和所需的提取目录。
  • 运行 Go 程序执行受密码保护的 zip 提取。

该解决方案有效地利用了 7zip 久经考验的 zip 功能,为 Golang 开发人员提供了一种处理受密码保护的 zip 文件的简单方法。

以上是如何在 Golang 中解压受密码保护的 Zip 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!