Go 检查os.Stat与os.MkdirAll
我需要写入嵌套目录中可能存在或不存在的文件 首先,我通过Go 检查os.Stat与os.MkdirAll,go,Go,我需要写入嵌套目录中可能存在或不存在的文件 首先,我通过os.Stat检查文件夹是否存在,如果不存在,则执行os.MkdirAll,然后打开并写入文件 我试着删除os.Stat,只做了os.MkdirAll,它似乎起了作用-这意味着os.MkdirAll是幂等的 我的问题是,做os.Stat检查有好处吗?这是一个比os.MkdirAll轻得多的操作吗?MkdirAll做的第一件事是调用os.Stat检查路径是否存在并且是一个目录 func MkdirAll(path string, perm F
os.Stat
检查文件夹是否存在,如果不存在,则执行os.MkdirAll
,然后打开并写入文件
我试着删除os.Stat,只做了os.MkdirAll
,它似乎起了作用-这意味着os.MkdirAll
是幂等的
我的问题是,做
os.Stat
检查有好处吗?这是一个比os.MkdirAll
轻得多的操作吗?MkdirAll
做的第一件事是调用os.Stat
检查路径是否存在并且是一个目录
func MkdirAll(path string, perm FileMode) error {
// Fast path: if we can tell whether path is a directory or file, stop with success or error.
dir, err := Stat(path)
if err == nil {
if dir.IsDir() {
return nil
}
return &PathError{"mkdir", path, syscall.ENOTDIR}
}
...
从文档中:
若路径已经是目录,则MkdirAll不执行任何操作并返回nil
因此,不需要调用os.Stat