在 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 久经考验的 zip 功能,为 Golang 开发人员提供了一种处理受密码保护的 zip 文件的简单方法。
以上是如何在 Golang 中解压受密码保护的 Zip 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!