dir.go 661 B

1234567891011121314151617181920212223242526272829
  1. package files
  2. import (
  3. "os"
  4. )
  5. // CheckAndCreateDir 检查文件夹是否存在,不存在则创建(包括各级父目录)
  6. func CheckAndCreateDir(dirPath string) error {
  7. // 检查文件夹是否存在
  8. _, err := os.Stat(dirPath)
  9. if err == nil {
  10. // 文件夹已存在
  11. return nil
  12. }
  13. // 判断错误类型是否为不存在
  14. if os.IsNotExist(err) {
  15. // 创建文件夹,0755表示权限:所有者可读写执行,组和其他用户可读执行
  16. // MkdirAll会递归创建所有不存在的父目录
  17. err := os.MkdirAll(dirPath, 0755)
  18. if err != nil {
  19. return err
  20. }
  21. return nil
  22. }
  23. // 其他错误(如权限问题等)
  24. return err
  25. }