我找到了很多有关如何从 .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
}
- 1 回答
- 0 关注
- 104 浏览
添加回答
举报
0/150
提交
取消