go语言制作的zip压缩程序示例分析
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,今天就跟大家聊聊有关go语言制作的zip压缩程序示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。可以压缩文件和目录。package ma
千家信息网最后更新 2026年10月31日go语言制作的zip压缩程序示例分析
今天就跟大家聊聊有关go语言制作的zip压缩程序示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
可以压缩文件和目录。
package mainimport ( "archive/zip" "bytes" "fmt" "io/ioutil" "os" "path/filepath")func main() { if err := compress(`gopkg`, `gopkg.zip`); err != nil { fmt.Println(err) }}// 参数frm可以是文件或目录,不会给dst添加.zip扩展名func compress(frm, dst string) error { buf := bytes.NewBuffer(make([]byte, 0, 10*1024*1024)) // 创建一个读写缓冲 myzip := zip.NewWriter(buf) // 用压缩器包装该缓冲 // 用Walk方法来将所有目录下的文件写入zip err := filepath.Walk(frm, func(path string, info os.FileInfo, err error) error { var file []byte if err != nil { return filepath.SkipDir } header, err := zip.FileInfoHeader(info) // 转换为zip格式的文件信息 if err != nil { return filepath.SkipDir } header.Name, _ = filepath.Rel(filepath.Dir(frm), path) if !info.IsDir() { // 确定采用的压缩算法(这个是内建注册的deflate) header.Method = 8 file, err = ioutil.ReadFile(path) // 获取文件内容 if err != nil { return filepath.SkipDir } } else { file = nil } // 上面的部分如果出错都返回filepath.SkipDir // 下面的部分如果出错都直接返回该错误 // 目的是尽可能的压缩目录下的文件,同时保证zip文件格式正确 w, err := myzip.CreateHeader(header) // 创建一条记录并写入文件信息 if err != nil { return err } _, err = w.Write(file) // 非目录文件会写入数据,目录不会写入数据 if err != nil { // 因为目录的内容可能会修改 return err // 最关键的是我不知道咋获得目录文件的内容 } return nil }) if err != nil { return err } myzip.Close() // 关闭压缩器,让压缩器缓冲中的数据写入buf file, err := os.Create(dst) // 建立zip文件 if err != nil { return err } defer file.Close() _, err = buf.WriteTo(file) // 将buf中的数据写入文件 if err != nil { return err } return nil}看完上述内容,你们对go语言制作的zip压缩程序示例分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
文件
目录
内容
数据
压缩器
缓冲
示例
程序
语言
分析
制作
信息
格式
部分
面的
关键
参数
同时
尽可能
扩展名
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网和科技技术
互联网科技公司的优势
互联网通讯科技
互联网巨头反垄断金融科技
腾讯科技 互联网女皇
有木互联网科技
时间互联网络科技
深圳期待互联网科技
无锡溥仪互联网科技有限公司
互联网科技创新企业排名
深圳国际航运科技和互联网
互联网教育科技公司vipkid
北京华百购互联网科技有限公司
互联网科技人工智能实验室
浙南科技城互联网大厦建设工程
企晟互联网信息科技有限公司
南博望互联网科技有限公司
北京市互联网新科技
唐山双旺合互联网科技产业园
互联网科技创业有什么好项目
互联网金融科技
美国互联网保险保险科技
新华互联网科技学院
互联网的科技创新
互联网科技的未来发展
互联网科技实习生岗位职责
中国航天科技大学国际工业互联网
高科技互联网套路
雨阳互联网卡科技有限公司
互联网科技快讯热点