我需要使用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()
去:?
要求是如果路径已经存在,操作应该是静默的(就像在其他语言示例中一样)。
答案 0 :(得分:3)
您可以尝试查看os.MkdirAll
是否确实创建了所需的所有文件夹。
MkdirAll
创建名为path的目录,以及任何必要的父级,并返回nil
,否则会返回错误。
权限位perm用于MkdirAll
创建的所有目录 如果path已经是目录,则MkdirAll
不执行任何操作并返回nil
。
请注意,当您查看at its implementation时,MkdirAll
并非完全"原子"。