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 }