|
@@ -5,21 +5,23 @@ import (
|
|
|
"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)
|
|
|
+ //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文件,并排除一个指定的子目录
|
|
@@ -82,3 +84,19 @@ func ZipDir(src, dest, excludeDir string) error {
|
|
|
|
|
|
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)
|
|
|
+}
|