当前位置: 首页 > news >正文

Go ZIP压缩文件读写操作

创建zip文件

golang提供了archive/zip包来处理zip压缩文件,下面通过一个简单的示例来展示golang如何创建zip压缩文件:

func createZip(filename string) {// 缓存压缩文件内容buf := new(bytes.Buffer)// 创建zipwriter := zip.NewWriter(buf)defer writer.Close()// 读取文件内容content, _ := ioutil.ReadFile(filepath.Clean(filename))// 接收f, _ := writer.Create(filename)f.Write(content)filename = strings.TrimSuffix(filename, path.Ext(filename)) + ".zip"ioutil.WriteFile(filename, buf.Bytes(), 0644)
}

读取zip文件

读取zip文档过程与创建zip文档过程类似,需要解压后的文档目录结构创建:

func readZip(filename string) {zipFile, err := zip.OpenReader(filename)if err != nil {panic(err.Error())}defer zipFile.Close()for _, f := range zipFile.File {info := f.FileInfo()if info.IsDir() {err = os.MkdirAll(f.Name, os.ModePerm)if err != nil {panic(err.Error())}continue}srcFile, err := f.Open()if err != nil {panic(err.Error())}defer srcFile.Close()newFile, err := os.Create( f.Name)if err != nil {panic(err.Error())}defer newFile.Close()io.Copy(newFile, srcFile)}
}

http://www.lryc.cn/news/231366.html

相关文章:

  • 全堆栈图像生成器专为Multiverse后端Bootcamp设计,结合了React、Firebase和Hugging Face API
  • 【C#学习】button:只显示图片
  • 我招基础初级运维实习生的面试题
  • vue实现浏览器关闭或刷新弹窗提示(beforeunload/unload)
  • Zookeeper学习笔记(1)—— 基础知识
  • mp4视频批量截取!!!
  • jQuery - AJAX get() 和 post() 方法
  • 设计模式(4)-行为型模式
  • JavaScript概述
  • Solidity案例详解(四)投票智能合约
  • Linux系统编程——进程中vfork函数
  • 敏感数据是什么?包含哪些?如何保障安全?
  • Leadshop开源商城小程序源码 – 支持公众号H5
  • Scala---方法与函数
  • 【C++】泛型编程 ④ ( 函数模板 与 普通函数 调用规则 | 类型自动转换 | 类型自动转换 + 显式指定泛型类型 )
  • 基于ChatGPT的文本生成艺术框架—WordArt Designer
  • 服务名无效。 请键入 NET HELPMSG 2185以获得更多的帮助
  • UE5——C++编译MSB3073报错
  • 自己动手实现一个深度学习算法——六、与学习相关的技巧
  • Maven间接依赖
  • Java架构师分布式搜索数据准确性解决方案
  • Clickhouse学习笔记
  • vim——“Linux”
  • 【QT深入理解】QT中的几种常用的排序函数
  • 自压缩llm 为 超长记忆
  • Perl的LWP::UserAgent库爬虫程序怎么写
  • 【算法】算法题-20231116
  • 微软允许OEM对Win10不提供关闭Secure Boot
  • 海康G5系列(armv7l) heop模式下交叉编译Qt qmqtt demo,出现moc缺少高版本GLibc问题之解决
  • gRPC协议详解