可以使用 os.Stat() 函数来判断路径是否存在。如果路径不存在,则可以使用 os.MkdirAll() 函数来递归创建路径。

下面是一个示例代码:

package main

import (
	"fmt"
	"os"
)

func main() {
	path := "/data/path/mem/new"

	// 检查路径是否存在
	_, err := os.Stat(path)
	if err != nil {
		if os.IsNotExist(err) {
			// 递归创建路径
			err := os.MkdirAll(path, 0755)
			if err != nil {
				fmt.Println("创建路径失败:", err)
				return
			}
			fmt.Println("路径创建成功")
		} else {
			fmt.Println("检查路径失败:", err)
			return
		}
	} else {
		fmt.Println("路径已存在")
	}
}

在上述代码中,首先使用 os.Stat() 函数检查路径是否存在。如果路径不存在,则使用 os.MkdirAll() 函数递归创建路径。os.MkdirAll() 函数的第二个参数是权限模式,这里使用了 0755 表示创建的目录具有读写执行权限。

需要注意的是,os.MkdirAll() 函数只会创建不存在的路径,如果路径已经存在,则不会执行任何操作。

Golang 递归创建多级目录:检查并创建路径

原文地址: https://www.cveoy.top/t/topic/fSDL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录