directory.go 921 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package utils
  2. import (
  3. "errors"
  4. "mtp20access/global"
  5. "os"
  6. "go.uber.org/zap"
  7. )
  8. //@function: PathExists
  9. //@description: 文件目录是否存在
  10. //@param: path string
  11. //@return: bool, error
  12. func PathExists(path string) (bool, error) {
  13. fi, err := os.Stat(path)
  14. if err == nil {
  15. if fi.IsDir() {
  16. return true, nil
  17. }
  18. return false, errors.New("存在同名文件")
  19. }
  20. if os.IsNotExist(err) {
  21. return false, nil
  22. }
  23. return false, err
  24. }
  25. //@function: CreateDir
  26. //@description: 批量创建文件夹
  27. //@param: dirs ...string
  28. //@return: err error
  29. func CreateDir(dirs ...string) (err error) {
  30. for _, v := range dirs {
  31. exist, err := PathExists(v)
  32. if err != nil {
  33. return err
  34. }
  35. if !exist {
  36. global.M2A_LOG.Debug("create directory" + v)
  37. if err := os.MkdirAll(v, os.ModePerm); err != nil {
  38. global.M2A_LOG.Error("create directory"+v, zap.Any(" error:", err))
  39. return err
  40. }
  41. }
  42. }
  43. return err
  44. }