在 Go 中递归创建目录的最惯用方法是什么?



我需要使用 Go 创建一个给定的嵌套目录结构,但我无法找到最实用和最惯用的方法。一些灵感:

砰:mkdir -p some/deep/path

C# : IO.Directory.CreateDirectory(@"some/deep/path")

菲律宾比索 : mkdir("some/deep/path", 0777, true)

爪哇:new File("some/deep/path").mkdirs()

去:?

要求是,如果路径已经到位,则操作应该是静默的(就像在其他语言示例中一样(。

您可以尝试查看os.MkdirAll是否确实创建了所需的所有文件夹。

MkdirAll创建一个名为 path 的目录以及任何必要的父目录,并返回 nil ,否则返回错误。
权限位 perm 用于MkdirAll创建的所有目录。
如果 path 已经是一个目录,MkdirAll 什么都不做,返回 nil

请参阅其测试类。

请注意,当您查看其实现时,MkdirAll并不完全是"原子的"。

相关内容

最新更新