Go 语言文件操作:读取压缩文件 1 个改进

1 读取zip压缩文件

在golang官方库中有archive/zip来帮助我们读取zip格式的压缩文件,常见步骤如下
a) 实例化一个zip文件读取器使用zip.OpenReader
b) 获取到zip文件中的file信息
c) 根据file的信息创建一个本地路径的一个对应文件操作句柄
d) 将压缩文件解压到对应的文件中
e) 关闭各个文件操作句柄

示例代码

func main() {
    if len(os.Args) != 2 {
        fmt.Println("lack of file")
        return
    }
    if !strings.Contains(os.Args[1], ".zip") {
        fmt.Println("the file is not zip format")
        return
    }
    //打开一个zip读取器
    newZipReader, err := zip.OpenReader(os.Args[1])
    if nil != err {
        fmt.Println(err)
        return
    }
    //退出前关闭
    defer newZipReader.Close()

    //读取zip文件的信息
    for _, f := range newZipReader.File {
        if f.FileInfo().IsDir() {
            fmt.Println(f.Name, "是一个目录")
        } else {
            fmt.Println(f.Name, "是一个文件")
        }
    }

}

运行结果

nothin:~/GoPractice$ go run ./readzip/main.go ./test.zip 
flags/ 是一个目录
flags/flag2 是一个文件
flags/flag 是一个文件
flags/main.go 是一个文件
readzip/ 是一个目录
readzip/main.go 是一个文件
go.mod 是一个文件
buffer/ 是一个目录
buffer/main.go 是一个文件
flags/zip1/ 是一个目录
flags/zip1/test.txt 是一个文件

参考:studygolang.com/pkgdoc

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!