登录
首页 >  Golang >  Go问答

解释如何解压缩一个文件

来源:stackoverflow

时间:2024-03-05 22:48:29 444浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《解释如何解压缩一个文件》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

我找到了很多关于如何从 .zip 中提取所有 文件的示例,但我无法弄清楚如何在不迭代 .zip 文件中的所有文件的情况下提取单个文件.

go 是否可以从 .zip 存档中提取单个文件,而无需迭代 .zip 文件中的所有文件?

例如,如果 zip 文件包含:

folder1/file1.txt
folder1/file2.txt
folder1/file3.txt
folder2/file1.txt

如何仅提取 folder2/file1.txt


解决方案


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
}

终于介绍完啦!小伙伴们,这篇关于《解释如何解压缩一个文件》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>