1234567891011121314151617181920212223242526272829303132333435363738 |
- 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
- dir := filepath.Dir(dst)
- Redirect:
- _, err = os.Stat(dir)
- if err != nil {
- err = os.MkdirAll(dir, 0755)
- if err != nil {
- return err
- }
- if !revoke {
- revoke = true
- goto Redirect
- }
- }
- return os.Rename(src, dst)
- }
|