Browse Source

first commit

Lynch 8 months ago
commit
71fa182618
3 changed files with 81 additions and 0 deletions
  1. 1 0
      doc.go
  2. 3 0
      go.mod
  3. 77 0
      xFile/xFile.go

+ 1 - 0
doc.go

@@ -0,0 +1 @@
+package goutils

+ 3 - 0
go.mod

@@ -0,0 +1,3 @@
+module git.wxsywater.com/LYNX/goutils
+
+go 1.21.0

+ 77 - 0
xFile/xFile.go

@@ -0,0 +1,77 @@
+package xFile
+
+import (
+	"os"
+	"path/filepath"
+	"reflect"
+	"strings"
+)
+
+//@author: [songzhibin97](https://github.com/songzhibin97)
+//@function: FileMove
+//@description: 文件移动供外部调用
+//@param: src string, dst string(src: 源位置,绝对路径or相对路径, dst: 目标位置,绝对路径or相对路径,必须为文件夹)
+//@return: err error
+
+func FileMove(src string, dst string) (err error) {
+	if dst == "" {
+		return nil
+	}
+	src, err = filepath.Abs(src)
+	if err != nil {
+		return err
+	}
+	dst, err = filepath.Abs(dst)
+	if err != nil {
+		return err
+	}
+	revoke := false
+	dir := filepath.Dir(dst)
+Redirect:
+	_, err = os.Stat(dir)
+	if err != nil {
+		err = os.MkdirAll(dir, 0o755)
+		if err != nil {
+			return err
+		}
+		if !revoke {
+			revoke = true
+			goto Redirect
+		}
+	}
+	return os.Rename(src, dst)
+}
+
+func DeLFile(filePath string) error {
+	return os.RemoveAll(filePath)
+}
+
+//@author: [songzhibin97](https://github.com/songzhibin97)
+//@function: TrimSpace
+//@description: 去除结构体空格
+//@param: target interface (target: 目标结构体,传入必须是指针类型)
+//@return: null
+
+func TrimSpace(target interface{}) {
+	t := reflect.TypeOf(target)
+	if t.Kind() != reflect.Ptr {
+		return
+	}
+	t = t.Elem()
+	v := reflect.ValueOf(target).Elem()
+	for i := 0; i < t.NumField(); i++ {
+		switch v.Field(i).Kind() {
+		case reflect.String:
+			v.Field(i).SetString(strings.TrimSpace(v.Field(i).String()))
+		}
+	}
+}
+
+// FileExist 判断文件是否存在
+func FileExist(path string) bool {
+	fi, err := os.Lstat(path)
+	if err == nil {
+		return !fi.IsDir()
+	}
+	return !os.IsNotExist(err)
+}