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) //}