package main
import (
"archive/zip"
"io"
"os"
)
func main() {
var dst = "test.zip" //压缩文件名称
var src = "log.txt" //源文件名称
zip_file(src, dst) //调用zip_file函数
}
func zip_file(src, dst string)(err error) {
archive, err := os.Create(dst) //创建文件对象
if err != nil {
panic(err)
}
defer archive.Close()
zipWriter := zip.NewWriter(archive) //初始化一个zip.Writer,用来将数据写入zip文件中
f2, err := os.Open(src) //打开源文件
if err != nil {
panic(err)
}
defer f2.Close()
w2, err := zipWriter.Create(src) //创建一个io.Writer
if err != nil {
panic(err)
}
//直接把源文件的内容copy到io.Writer中,即是写入到zip文件中
if _, err := io.Copy(w2, f2); err != nil {
panic(err)
}
zipWriter.Close()
return err
}