功能描述:
使用go语言实现打包压缩功能。
实现这个功能不需要引入第三方库,直接使用go语言自带的archive/zip库即可。
下面直接给出实例代码:
package main
import (
"archive/zip"
"io"
"log"
"os"
)
func zipfiles(zipfilename string, files []string) error {
newfile, err := os.Create(zipfilename)
if err != nil {
return err
}
defer newfile.Close()
zwriter := zip.NewWriter(newfile)
defer zwriter.Close()
for _, file := range files {
temp, err := os.Open(file)
if err != nil {
return err
}
defer temp.Close()
info, err := temp.Stat()
if err != nil {
return err
}
header, err := zip.FileInfoHeader(info)
if err != nil {
return err
}
header.Name = file
header.Method = zip.Deflate
writer, err := zwriter.CreateHeader(header)
if err != nil {
return err
}
_, err = io.Copy(writer, temp)
if err != nil {
return err
}
}
return nil
}
func main() {
// 待压缩文件列表
files := []string{"./zipdemo/test1.txt", "./zipdemo/test2.txt"}
// 输出的压缩包文件名
output := "output.zip"
// 执行压缩
err := zipfiles(output, files)
if err != nil {
log.Fatal(err)
return
}
log.Println("success")
}
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。