[转]golang压缩加压

[转]golang压缩加压,第1张

概述压缩文件 package main  import (    "fmt"    "os"    "io"    "archive/tar"    "compress/gzip")  func main() {    // file write    fw, err := os.Create("tar/lin_golang_src.tar.gz")    if err !=

压缩文件

packagemainimport("fmt""os""io""archive/tar""compress/gzip")funcmain(){//filewritefw,err:=os.Create("tar/lin_golang_src.tar.gz")iferr!=nil{panic(err)}deferfw.Close()//gzipwritegw:=gzip.NewWriter(fw)defergw.Close()//tarwritetw:=tar.NewWriter(gw)defertw.Close()//打开文件夹dir,err:=os.Open("file/")iferr!=nil{panic(nil)}deferdir.Close()//读取文件列表fis,err:=dir.Readdir(0)iferr!=nil{panic(err)}//遍历文件列表for_,fi:=rangefis{//逃过文件夹,我这里就不递归了iffi.IsDir(){continue}//打印文件名称fmt.Println(fi.name())//打开文件fr,err:=os.Open(dir.name()+"/"+fi.name())iferr!=nil{panic(err)}deferfr.Close()//信息头h:=new(tar.header)h.name=fi.name()h.Size=fi.Size()h.Mode=int64(fi.Mode())h.ModTime=fi.ModTime()//写信息头err=tw.Writeheader(h)iferr!=nil{panic(err)}//写文件_,err=io.copy(tw,fr)iferr!=nil{panic(err)}}fmt.Println("tar.gzok")}

解压缩文件

packagemainimport("fmt""os""io"//"time""archive/tar""compress/gzip")funcmain(){//filereadfr,err:=os.Open("tar/lin_golang_src.tar.gz")iferr!=nil{panic(err)}deferfr.Close()//gzipreadgr,err:=gzip.NewReader(fr)iferr!=nil{panic(err)}defergr.Close()//tarreadtr:=tar.NewReader(gr)//读取文件for{h,err:=tr.Next()iferr==io.EOF{break}iferr!=nil{panic(err)}//显示文件fmt.Println(h.name)//打开文件fw,err:=os.Openfile("file2/"+h.name,os.O_CREATE|os.O_WRONLY,0644/*os.fileMode(h.Mode)*/)iferr!=nil{panic(err)}deferfw.Close()//写文件_,err=io.copy(fw,tr)iferr!=nil{panic(err)}}fmt.Println("untar.gzok")}
总结

以上是内存溢出为你收集整理的[转]golang压缩加压全部内容,希望文章能够帮你解决[转]golang压缩加压所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1291769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存