|
@@ -34,6 +34,25 @@ func ZipDir(src, dest, excludeDir string) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+func TarGzDir(src, dest, excludeDir string) error {
|
|
|
+ // 获取相对路径,以便用于排除目录
|
|
|
+ relExcludeDir, err := filepath.Rel(src, excludeDir)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建 tar 命令
|
|
|
+ tarCmd := exec.Command("tar", "-czf", dest, "--exclude", relExcludeDir, "-C", src, ".")
|
|
|
+
|
|
|
+ // 运行命令并捕获输出
|
|
|
+ output, err := tarCmd.CombinedOutput()
|
|
|
+ if err != nil {
|
|
|
+ return fmt.Errorf("tar command failed: %v, output: %s", err, string(output))
|
|
|
+ }
|
|
|
+
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func GetFileSize(filePath string) (int, error) {
|
|
|
fileInfo, err := os.Stat(filePath)
|
|
|
if err != nil {
|