Go 语言文件操作:读取压缩文件
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 是一个文件
推荐文章: