为了账号安全,请及时绑定邮箱和手机立即绑定

如何解压单个文件?

如何解压单个文件?

Go
慕桂英3389331 2023-07-26 13:24:50
我找到了很多有关如何从 .zip 中提取所有文件的示例,但我无法弄清楚如何在不迭代 .zip 文件中的所有文件的情况下提取单个文件。Go 是否可以从 .zip 存档中提取单个文件,而无需迭代 .zip 文件中的所有文件?例如,如果 zip 文件包含:folder1/file1.txt folder1/file2.txt folder1/file3.txt folder2/file1.txt我该如何提取 folder2/file1.txt?
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

zip.Reader为您提供存档的内容,文件作为(的)切片zip.File。没有帮助方法可以按名称获取文件,您必须使用循环迭代文件。您不需要打开/提取文件,但要按名称查找文件,您必须使用循环。


例如:


r, err := zip.OpenReader("testdata/readme.zip")

if err != nil {

    log.Fatal(err)

}

defer r.Close()


for _, f := range r.File {

    if f.Name != "folder2/file1.txt" {

        continue

    }


    // Found it, print its content to terminal:

    rc, err := f.Open()

    if err != nil {

        log.Fatal(err)

    }

    _, err = io.Copy(os.Stdout, rc)

    if err != nil {

        log.Fatal(err)

    }

    rc.Close()

    fmt.Println()

    break

}


查看完整回答
反对 回复 2023-07-26
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信