在 Go 1.2 中解压受密码保护的 ZIP 文件
在 Go 1.2 中,archive/zip 包提供了基本的 zip 功能,但缺乏支持用于处理受密码保护的文件。要解压缩此类文件,建议结合使用 os/exec 包和 7zip 等外部工具。
使用 7zip 提取受密码保护的 ZIP 文件
以下示例演示如何使用 7zip 提取受密码保护的 ZIP 文件:
<code class="go">func extractZipWithPassword() { fmt.Printf("Unzipping `%s` to directory `%s`\n", zip_path, extract_path) commandString := fmt.Sprintf(`7za e %s -o%s -p"%s" -aoa`, zip_path, extract_path, zip_password) commandSlice := strings.Fields(commandString) fmt.Println(commandString) c := exec.Command(commandSlice[0], commandSlice[1:]...) e := c.Run() checkError(e) }</code>
在此示例中,我们使用 7za 可执行文件构造一个命令字符串来提取 ZIP 文件。我们指定文件路径、提取目录、密码和其他选项来覆盖现有文件并更新存档时间戳 (-aoa)。然后,我们使用 exec.Command 函数执行命令并检查是否有错误。
其他资源
注意:
虽然这种方法依赖于作为一个外部工具,它提供了一个简单的解决方案来处理 Go 中受密码保护的 ZIP 文件。
以上是如何在 Go 中解压受密码保护的 ZIP 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!