首页 > 其他分享 >Go 创建带密码的zip压缩包

Go 创建带密码的zip压缩包

时间:2024-09-10 14:04:02浏览次数:1  
标签:zip err nil Fatalln Go main 压缩包 log

创建带密码的zip压缩包

package main

import (
	"io"
	"log"
	"os"
	"path/filepath"

	"github.com/alexmullins/zip"
)

func init() {
	log.SetFlags(log.Lshortfile | log.LstdFlags)
}

func main() {
	fzip, err := os.Create("./main.zip")
	if err != nil {
		log.Fatalln(err)
	}
	defer fzip.Close()

	zipw := zip.NewWriter(fzip)
	defer zipw.Close()
	header := &zip.FileHeader{
		Name:   filepath.Base("main.go"),
		Method: zip.Deflate,
		Flags:  0x800, // 设置文件名称编码为UTF-8,避免在Windows上解压后文件名出现乱码
	}
	header.SetPassword("password")
	w, err := zipw.CreateHeader(header)
	if err != nil {
		log.Fatalln(err)
	}
	// 打开要添加到压缩包中的原文件
	f, err := os.Open("./main.go")
	if err != nil {
		log.Fatalln(err)
	}

	// 从文件中读取数据到压缩包中
	if _, err = io.Copy(w, f); err != nil {
		log.Fatalln(err)
	}

	// 写入到存储中
	if err := zipw.Flush(); err != nil {
		log.Fatalln(err)
	}
}


标签:zip,err,nil,Fatalln,Go,main,压缩包,log
From: https://www.cnblogs.com/liy36/p/18406264

相关文章