From 9ea6a946c58112b5efe6440758ec98bdbdbb9e12 Mon Sep 17 00:00:00 2001 From: xc Date: Thu, 23 Oct 2025 15:30:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E6=8C=81=E5=8E=9F=E6=9C=89=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scagent/util/fsutil.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scagent/util/fsutil.go b/scagent/util/fsutil.go index 99dc010..6c6e9d2 100644 --- a/scagent/util/fsutil.go +++ b/scagent/util/fsutil.go @@ -297,10 +297,13 @@ func DecompressZip(zpFname string, dirpath string) error { if err != nil { return fmt.Errorf("failed to create file (%v)", err) } + defer dstFile.Close() + // 打开zip文件中的文件 fileInArchive, err := f.Open() if err != nil { return fmt.Errorf("failed to open file in zip (%v)", err) } + defer fileInArchive.Close() // 检查文件是否存在,存在的话先备份 if _, err := os.Stat(filePath); err == nil { // 当前时间 @@ -315,8 +318,11 @@ func DecompressZip(zpFname string, dirpath string) error { if _, err := io.Copy(dstFile, fileInArchive); err != nil { return fmt.Errorf("failed to copy file in zip (%v)", err) } - dstFile.Close() - fileInArchive.Close() + // 保留原始文件的修改时间 + if err := os.Chtimes(filePath, f.ModTime(), f.ModTime()); err != nil { + return fmt.Errorf("failed to set file times (%v)", err) + } + // nothing } return nil }