directory.go 1.0 KB

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