123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package test
- //import (
- // "archive/zip"
- // "fmt"
- // "io"
- // "os"
- // "os/exec"
- // "path/filepath"
- // "strings"
- // "testing"
- //)
- //
- //func TestZip(t *testing.T) {
- // //src := "C:\\Users\\mlxengingin\\Desktop\\0813\\go从入门到通天(20)"
- // //dest := "C:\\Users\\mlxengingin\\Desktop\\0813\\go从入门到通天(20).zip"
- // //excludeDir := "C:\\Users\\mlxengingin\\Desktop\\0813\\go从入门到通天(20)\\搜索引擎" // 你想排除的子目录
- // //err := ZipDir(src, dest, excludeDir)
- // //if err != nil {
- // // fmt.Println("Error:", err)
- // // return
- // //}
- // //fmt.Println("Zip created successfully:", dest)
- // ZipDir2("/root/pjirobot/data/", "/root/pjirobot/data.zip", []string{"config", "map", "mapBuf"})
- //}
- //
- //// 压缩指定目录到ZIP文件,并排除一个指定的子目录
- //func ZipDir(src, dest, excludeDir string) error {
- // zipf, err := os.Create(dest)
- // if err != nil {
- // return err
- // }
- // defer zipf.Close()
- //
- // archive := zip.NewWriter(zipf)
- // defer archive.Close()
- //
- // filepath.Walk(src, func(path string, info os.FileInfo, err error) error {
- // if err != nil {
- // return err
- // }
- //
- // header, err := zip.FileInfoHeader(info)
- // if err != nil {
- // return err
- // }
- //
- // // 修正文件路径,使其相对于src
- // header.Name, err = filepath.Rel(src, path)
- // if err != nil {
- // return err
- // }
- //
- // // 如果路径包含要排除的目录,则跳过
- // if strings.Contains(header.Name, excludeDir) {
- // if info.IsDir() {
- // return filepath.SkipDir // 如果是目录,则跳过整个目录
- // }
- // return nil // 如果是文件,则忽略该文件
- // }
- //
- // if info.IsDir() {
- // header.Name += "/"
- // } else {
- // header.Method = zip.Deflate
- // }
- //
- // writer, err := archive.CreateHeader(header)
- // if err != nil {
- // return err
- // }
- //
- // if !info.IsDir() {
- // file, err := os.Open(path)
- // if err != nil {
- // return err
- // }
- // defer file.Close()
- // _, err = io.Copy(writer, file)
- // return err
- // }
- // return nil
- // })
- //
- // return nil
- //}
- //func ZipDir2(src string, dest string, dirs []string) {
- // // 创建 zip 命令参数
- // args := []string{"-r", dest}
- // for _, dir := range dirs {
- // args = append(args, filepath.Join(src, dir))
- // }
- //
- // // 创建 zip 命令
- // cmd := exec.Command("zip", args...)
- //
- // // 设置工作目录
- // cmd.Dir = src
- //
- // // 执行 zip 命令并获取输出
- // fmt.Println(args)
- //}
|