file_operations.go 637 B

1234567891011121314151617181920212223242526272829
  1. package utils
  2. import (
  3. "errors"
  4. "os"
  5. "path/filepath"
  6. )
  7. // FileMove: 文件移动供外部调用
  8. // src: 源位置 绝对路径相对路径都可以
  9. // dst: 目标位置 绝对路径相对路径都可以 dst 必须为文件夹
  10. func FileMove(src string, dst string) (err error) {
  11. if dst == "" {
  12. return nil
  13. }
  14. src, err = filepath.Abs(src)
  15. if err != nil {
  16. return err
  17. }
  18. dst, err = filepath.Abs(dst)
  19. if err != nil {
  20. return err
  21. }
  22. if !filepath.IsAbs(dst) && !filepath.IsAbs(src) {
  23. return errors.New(dst + " or " + src + " path is not abs")
  24. }
  25. // TODO 判断文件夹是否存在,不存在mkdir
  26. return os.Rename(src, dst)
  27. }