Browse Source

fix:#796 补充

main
songzhibin97 3 years ago
parent
commit
eeef9be9d3
  1. 6
      server/service/system/sys_auto_code.go
  2. 5
      server/service/system/sys_autocode_history.go
  3. 11
      server/utils/file_operations.go

6
server/service/system/sys_auto_code.go

@ -197,6 +197,12 @@ func (autoCodeService *AutoCodeService) CreateTemp(autoCode system.AutoCodeStruc
for index := range dataList { for index := range dataList {
autoCodeService.addAutoMoveFile(&dataList[index]) autoCodeService.addAutoMoveFile(&dataList[index])
} }
// 判断目标文件是否都可以移动
for _, value := range dataList {
if utils.FileExist(value.autoMoveFilePath) {
return errors.New(fmt.Sprintf("目标文件已存在:%s\n", value.autoMoveFilePath))
}
}
for _, value := range dataList { // 移动文件 for _, value := range dataList { // 移动文件
if err := utils.FileMove(value.autoCodePath, value.autoMoveFilePath); err != nil { if err := utils.FileMove(value.autoCodePath, value.autoMoveFilePath); err != nil {
return err return err

5
server/service/system/sys_autocode_history.go

@ -81,6 +81,11 @@ func (autoCodeHistoryService *AutoCodeHistoryService) RollBack(id uint) error {
// 迁移 // 迁移
nPath := filepath.Join(global.GVA_CONFIG.AutoCode.Root, nPath := filepath.Join(global.GVA_CONFIG.AutoCode.Root,
"rm_file", time.Now().Format("20060102"), filepath.Base(filepath.Dir(filepath.Dir(path))), filepath.Base(filepath.Dir(path)), filepath.Base(path)) "rm_file", time.Now().Format("20060102"), filepath.Base(filepath.Dir(filepath.Dir(path))), filepath.Base(filepath.Dir(path)), filepath.Base(path))
// 判断目标文件是否存在
for utils.FileExist(nPath) {
fmt.Println("文件已存在:", nPath)
nPath += fmt.Sprintf("_%d", time.Now().Nanosecond())
}
err = utils.FileMove(path, nPath) err = utils.FileMove(path, nPath)
if err != nil { if err != nil {
fmt.Println(">>>>>>>>>>>>>>>>>>>", err) fmt.Println(">>>>>>>>>>>>>>>>>>>", err)

11
server/utils/file_operations.go

@ -1,7 +1,6 @@
package utils package utils
import ( import (
"errors"
"os" "os"
"path/filepath" "path/filepath"
"reflect" "reflect"
@ -26,10 +25,6 @@ func FileMove(src string, dst string) (err error) {
if err != nil { if err != nil {
return err return err
} }
_, err = os.Stat(dst)
if err == nil {
return errors.New("文件已存在")
}
var revoke = false var revoke = false
dir := filepath.Dir(dst) dir := filepath.Dir(dst)
Redirect: Redirect:
@ -71,3 +66,9 @@ func TrimSpace(target interface{}) {
} }
} }
} }
// FileExist 判断文件是否存在
func FileExist(path string) bool {
_, err := os.Lstat(path)
return !os.IsNotExist(err)
}
Loading…
Cancel
Save