package utils import ( "os" "path/filepath" ) // FileMove: 文件移动供外部调用 // src: 源位置 绝对路径相对路径都可以 // dst: 目标位置 绝对路径相对路径都可以 dst 必须为文件夹 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 } var revoke = false Redirect: _, err = os.Stat(filepath.Dir(dst)) if err != nil { err = os.MkdirAll(filepath.Dir(dst), 0755) if err != nil { return err } if !revoke { revoke = true goto Redirect } } return os.Rename(src, dst) }