Compare commits

...

3 Commits

  1. 43
      scagent/util/fsutil.go
  2. 2
      vue/afvue/src/views/Sfilecompare.vue

43
scagent/util/fsutil.go

@ -304,16 +304,6 @@ func DecompressZip(zpFname string, dirpath string) error {
return fmt.Errorf("failed to open file in zip (%v)", err)
}
defer fileInArchive.Close()
// 检查文件是否存在,存在的话先备份
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)
}
}
// 复制文件到目标路径
if _, err := io.Copy(dstFile, fileInArchive); err != nil {
return fmt.Errorf("failed to copy file in zip (%v)", err)
@ -330,9 +320,7 @@ func DecompressZip(zpFname string, dirpath string) error {
// dest:目的地址以及压缩文件名 eg:/data/logZip/2022-12-12-log.zip
// paths:需要压缩的所有文件所组成的集合
func CompressToZip(dest string, currentPath string, paths []string) error {
// fmt.Printf("currentPath:%s\n", currentPath)
// fmt.Printf("paths len:%d\n", len(paths))
// fmt.Println("real path", currentPath)
// 打开files 目录
filesPath := ""
if dir, err := os.Getwd(); err == nil {
@ -350,6 +338,15 @@ func CompressToZip(dest string, currentPath string, paths []string) error {
zipWriter := zip.NewWriter(zfile)
defer zipWriter.Close()
// 目录格式 2025/10
dirpath := fmt.Sprintf("%d/%02d", time.Now().Year(), time.Now().Month())
// 组织目录路径
filesPath = filepath.Join(filesPath, dirpath)
// 创建目录
if err := os.MkdirAll(filesPath, os.ModePerm); err != nil {
return err
}
// 遍历带压缩的目录信息
for _, src := range paths {
// 替换文件名,并且去除前后 "\" 或 "/"
@ -443,3 +440,23 @@ func ReadConfig() {
func DeleteFile(filePath string) error {
return os.Remove(filePath)
}
// 删除过期文件
func DeleteExpiredFiles(dirPath string, expiredTime time.Duration) error {
// 遍历目录下的所有文件
err := filepath.Walk(dirPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// 检查文件是否过期
if info.IsDir() {
return nil
}
if time.Since(info.ModTime()) > expiredTime {
// 删除过期文件
return DeleteFile(path)
}
return nil
})
return err
}

2
vue/afvue/src/views/Sfilecompare.vue

@ -354,6 +354,8 @@ export default {
this.dialogShow = false
}, 3000);
}
//
this.getSflist()
// alert(res.data.reply)
//
this.selectedFiles = []

Loading…
Cancel
Save