From e75cfb50c1878055e47c3a4c902db19ee64bb14d Mon Sep 17 00:00:00 2001 From: xc Date: Thu, 23 Oct 2025 14:52:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=AD=98=E5=9C=A8=E7=9A=84?= =?UTF-8?q?=E8=AF=9D=20=E5=85=88=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scagent/util/fsutil.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scagent/util/fsutil.go b/scagent/util/fsutil.go index 16b8800..5695a81 100644 --- a/scagent/util/fsutil.go +++ b/scagent/util/fsutil.go @@ -14,6 +14,7 @@ import ( "path/filepath" "scagent/config" "strings" + "time" "github.com/schollz/progressbar/v3" "go.uber.org/zap" @@ -287,6 +288,17 @@ func DecompressZip(zpFname string, dirpath string) error { os.MkdirAll(filePath, os.ModePerm) continue } + // 文件存在先备份再覆盖 + if _, err := os.Stat(filePath); err == nil { + // 当前时间 + currentTime := time.Now().Format("20060102_150405") + // 备份文件 + backupPath := filePath + currentTime + "_bak" + if err := os.Rename(filePath, backupPath); err != nil { + return fmt.Errorf("failed to backup file (%v)", err) + } + continue + } // 父文件夹开始创建目录 if err := os.MkdirAll(filepath.Dir(filePath), os.ModePerm); err != nil { return fmt.Errorf("failed to make directory (%v)", err)