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

时间:2014-12-08 06:34:39

标签: go

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

Bash:mkdir -p some/deep/path

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

PHP:mkdir("some/deep/path", 0777, true)

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

去:?

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

1 个答案:

答案 0 :(得分:3)

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

  

MkdirAll创建名为path的目录,以及任何必要的父级,并返回nil,否则会返回错误。
  权限位perm用于MkdirAll创建的所有目录   如果path已经是目录,则MkdirAll不执行任何操作并返回nil

test class

请注意,当您查看at its implementation时,MkdirAll并非完全"原子"。