12345678910111213141516171819202122232425262728293031323334353637 |
- 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)
- }
|