go语言制作的zip压缩程序示例分析
发表于:2024-10-28 作者:千家信息网编辑
千家信息网最后更新 2024年10月28日,今天就跟大家聊聊有关go语言制作的zip压缩程序示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。可以压缩文件和目录。package ma
千家信息网最后更新 2024年10月28日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安全错误
数据库的锁怎样保障安全
java显示数据库全部信息
学生网络安全板报
oracle 数据库语法
卫健系统信息网络安全培训班
软件开发容易掉头发吗
千牛 无法连接服务器
劲233 gm数据库
qt数据库分区
五角大楼网络安全问题
腾讯软件开发管理工具
分析服务器的安全方法
sccm服务器搭建
延吉市韩盟软件开发公司
数据库导入和到处是什么意思
中国信息网络安全协会
mp4服务器运营失败
windows云服务器
软件开发销售前景如何
银行软件开发用些什么技术
toc公共赛专属服务器怎么进入
网络安全中网络拓扑
客户服务器模型的文字描述
软件开发版权官司
软件开发那点事儿
网络安全叫啥子
共享经济下的服务器
魔兽世界服务器人数
2031网络安全100强
维尔达软件开发公司
华容软件开发技术