日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文件压缩的一种实现

發(fā)布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件压缩的一种实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

記錄一下對文件進行壓縮的實現(xiàn),這里只列出了核心代碼

/* 函數(shù)名: makeTarGzip制作壓縮包,提高在線傳輸速率 參 數(shù):encFile , 密文文件signFile , 簽名文件 返回值:壓縮后文件名錯誤信息 創(chuàng)建時間及創(chuàng)建者:2021-06-15 Yuan_sr */ func makeTarGzip(encFile, signFile string) (string, error){tarGzipFileName = "example.tar.gz"// file writefw, err := os.Create(tarGzipFileName)if err != nil {return "", err}defer fw.Close()// gzip writegw := gzip.NewWriter(fw)defer gw.Close()// tar writetw := tar.NewWriter(gw)defer tw.Close()// 打開文件夾dir, err := os.Open("./")if err != nil {return "", err}defer dir.Close()// 讀取文件列表fis, err := dir.Readdir(0)if err != nil {return "", err}for _, fi := range fis{if fi.IsDir(){continue}if fi.Name() == encFile || fi.Name() == signFile{ //去掉這個條件可以實現(xiàn)該目錄下所有文件的壓縮ef, err := os.Open(dir.Name() + "/" + fi.Name())if err != nil {return "", err}defer ef.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)if err != nil {return "", err}_, err = io.Copy(tw, ef)if err != nil {return "", err}}}return tarGzipFileName, err }/* 函數(shù)名: unTarGzip文件解壓縮 參 數(shù):tarGzipFile , 待解壓縮文件 返回值:錯誤信息 創(chuàng)建時間及創(chuàng)建者:2021-06-15 Yuan_sr */ func unTarGzip (tarGzipFile string) error {fr, err := os.Open(tarGzipFile)if err != nil {return err}defer fr.Close()gr, err := gzip.NewReader(fr)if err != nil {return err}defer gr.Close()tr := tar.NewReader(gr)for {h, err := tr.Next()if err == io.EOF {break}if err != nil {return err}fw, err := os.OpenFile(h.Name, os.O_CREATE | os.O_WRONLY, 0755)if err != nil {return err}defer fw.Close()_, err = io.Copy(fw, tr)if err != nil {return err}}return nil }

總結

以上是生活随笔為你收集整理的文件压缩的一种实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。