Skip to content

Commit 26a1a89

Browse files
committed
Merge branch 'gva_gormv2_dev' of https://github.com/flipped-aurora/gin-vue-admin into gva_gormv2_dev
2 parents 2daa65f + d2579d3 commit 26a1a89

File tree

2 files changed

+83
-8
lines changed

2 files changed

+83
-8
lines changed

server/service/sys_auto_code.go

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,26 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) {
8888
_ = f.Close()
8989
}
9090

91-
// 生成压缩包
92-
if err := utils.ZipFiles("./ginvueadmin.zip", fileList, ".", "."); err != nil {
93-
return err
94-
}
95-
96-
// 移除中间文件
97-
if err := os.RemoveAll(autoPath); err != nil {
98-
return err
91+
defer func() {
92+
// 移除中间文件
93+
if err := os.RemoveAll(autoPath); err != nil {
94+
return
95+
}
96+
}()
97+
if autoCode.AutoMoveFile {
98+
// 判断是否需要自动转移
99+
for _, value := range dataList {
100+
// 转移
101+
err := utils.FileMove(value.locationPath, value.autoCodePath)
102+
if err != nil {
103+
return err
104+
}
105+
}
106+
} else {
107+
// 打包
108+
if err := utils.ZipFiles("./ginvueadmin.zip", fileList, ".", "."); err != nil {
109+
return err
110+
}
99111
}
100112
return nil
101113
}

server/utils/fileoperations.go

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package utils
2+
3+
import (
4+
"errors"
5+
"fmt"
6+
"io/ioutil"
7+
"os"
8+
"path/filepath"
9+
)
10+
11+
// package fileOperations use File Operations
12+
13+
// fileMove: 文件移动
14+
// src: 源位置 需要传入绝对路径
15+
// dst: 目标位置 需要传入绝对路径
16+
func fileMove(src string, dst string) error {
17+
if !filepath.IsAbs(dst) && !filepath.IsAbs(src) {
18+
return errors.New(fmt.Sprintf("%s or %s path is not abs", dst, src))
19+
}
20+
return os.Rename(src, dst)
21+
}
22+
23+
// FileMove: 文件移动供外部调用
24+
// src: 源位置 绝对路径相对路径都可以
25+
// dst: 目标位置 绝对路径相对路径都可以 dst 必须为文件夹
26+
func FileMove(src string, dst string) error {
27+
var err error
28+
// 转化为绝对路径
29+
src, err = filepath.Abs(src)
30+
if err != nil {
31+
return err
32+
}
33+
dst, err = filepath.Abs(dst)
34+
if err != nil {
35+
return err
36+
}
37+
// 判断传入的是否是目录
38+
oSrc, err := os.Stat(src)
39+
if err != nil {
40+
return err
41+
}
42+
if !oSrc.IsDir() {
43+
return errors.New(fmt.Sprintf("%s is not Dir", src))
44+
}
45+
oDst, err := os.Stat(dst)
46+
if err != nil {
47+
return err
48+
}
49+
if !oDst.IsDir() {
50+
return errors.New(fmt.Sprintf("%s is not Dir", dst))
51+
}
52+
// 遍历指定目录下所有文件
53+
f, err := ioutil.ReadDir(src)
54+
for _, file := range f {
55+
nDst := filepath.Join(dst, file.Name())
56+
nSrc := filepath.Join(src, file.Name())
57+
err = fileMove(nSrc, nDst)
58+
if err != nil {
59+
return err
60+
}
61+
}
62+
return err
63+
}

0 commit comments

Comments
 (0)