You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.3 KiB

  1. package utils
  2. import (
  3. "os"
  4. "path/filepath"
  5. )
  6. // @title PathExists
  7. // @description 文件目录是否存在
  8. // @auth (2020/04/05 20:22)
  9. // @param path string
  10. // @return err error
  11. func PathExists(path string) (bool, error) {
  12. _, err := os.Stat(path)
  13. if err == nil {
  14. return true, nil
  15. }
  16. if os.IsNotExist(err) {
  17. return false, nil
  18. }
  19. return false, err
  20. }
  21. // @title createDir
  22. // @description 批量创建文件夹
  23. // @auth (2020/04/05 20:22)
  24. // @param dirs string
  25. // @return err error
  26. func CreateDir(dirs ...string) (err error) {
  27. for _, v := range dirs {
  28. exist, err := PathExists(v)
  29. if err != nil {
  30. // log.L.Info(fmt.Sprintf("get dir error![%v]\n", err))
  31. return err
  32. }
  33. if exist {
  34. // log.L.Info(fmt.Sprintf("has dir![%v]\n"+_dir))
  35. } else {
  36. // log.L.Info(fmt.Sprintf("no dir![%v]\n"+_dir))
  37. // 创建文件夹
  38. err = os.MkdirAll(v, os.ModePerm)
  39. if err != nil {
  40. // log.L.Error(fmt.Sprintf("mkdir error![%v]\n",err))
  41. } else {
  42. // log.L.Info("mkdir success!\n")
  43. }
  44. }
  45. }
  46. return err
  47. }
  48. // @title cwd
  49. // @description 获取当前工作目录
  50. // @return string
  51. func CWD() string {
  52. path, err := os.Executable()
  53. if err != nil {
  54. return ""
  55. }
  56. return filepath.Dir(path)
  57. }