go 语言文件操作:读取压缩文件 | go 技术论坛-江南app体育官方入口

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 是一个文件

参考:

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

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