Browse Source

保持原有文件时间

master
xyiege 1 month ago
parent
commit
9ea6a946c5
  1. 10
      scagent/util/fsutil.go

10
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
}

Loading…
Cancel
Save