LingxinMeng 9 ヶ月 前
コミット
a065862f07
2 ファイル変更28 行追加10 行削除
  1. 1 1
      common/util/u_io.go
  2. 27 9
      test/zip_test.go

+ 1 - 1
common/util/u_io.go

@@ -16,7 +16,7 @@ func ZipDir(src string, dest string, dirs []string) error {
 	// 创建 zip 命令参数
 	args := []string{"-r", dest}
 	for _, dir := range dirs {
-		args = append(args, filepath.Join(src, dir))
+		args = append(args, src+dir)
 	}
 
 	// 创建 zip 命令

+ 27 - 9
test/zip_test.go

@@ -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)
+}