Go语言学习: golang 里的 zip with password 操作
压缩文件并带密码
安装
go get -u github.com/alexmullins/zip
main.go
package main
import (
"bytes"
"io"
"log"
"os"
"github.com/alexmullins/zip"
)
func main() {
contents := []byte("Hello World")
fzip, err := os.Create(`./test.zip`)
if err != nil {
log.Fatalln(err)
}
zipw := zip.NewWriter(fzip)
defer zipw.Close()
w, err := zipw.Encrypt(`test.txt`, `golang`)
if err != nil {
log.Fatal(err)
}
_, err = io.Copy(w, bytes.NewReader(contents))
if err != nil {
log.Fatal(err)
}
zipw.Flush()
}
已经有文件的
package main
import (
"io"
"log"
"os"
"github.com/alexmullins/zip"
)
func main() {
// 打开已有的文件
file, err := os.Open("hello.txt")
if err != nil {
log.Fatalln(err)
}
defer file.Close()
// 创建压缩文件
fzip, err := os.Create("test.zip")
if err != nil {
log.Fatalln(err)
}
defer fzip.Close()
// 创建 zip 写入器
zipw := zip.NewWriter(fzip)
defer zipw.Close()
// 创建加密的 zip 文件条目
w, err := zipw.Encrypt("hello.txt", "golang")
if err != nil {
log.Fatalln(err)
}
// 将文件内容写入 zip 条目
if _, err := io.Copy(w, file); err != nil {
log.Fatalln(err)
}
}