zip.go 638 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package public
  2. import (
  3. "bytes"
  4. "io"
  5. "log"
  6. "os"
  7. "github.com/alexmullins/zip"
  8. )
  9. //contents := []byte("Hello World")
  10. // fileName := "test.txt"
  11. // zipName := "./test.zip"
  12. // password := "golang"
  13. // Zip(contents, fileName, zipName, password)
  14. //文本压缩加密
  15. func Zip(contents []byte, fileName, zipName, password string) {
  16. fzip, err := os.Create(zipName)
  17. if err != nil {
  18. log.Fatalln(err)
  19. }
  20. zipw := zip.NewWriter(fzip)
  21. defer zipw.Close()
  22. w, err := zipw.Encrypt(fileName, password)
  23. if err != nil {
  24. log.Fatal(err)
  25. }
  26. _, err = io.Copy(w, bytes.NewReader(contents))
  27. if err != nil {
  28. log.Fatal(err)
  29. }
  30. zipw.Flush()
  31. }