Go でディレクトリを掘る

ディレクトリを掘る際に既にディレクトリがあった場合には何もしたくなかったので、

import (
  "os"
)

func main() {
  if _, err := os.Stat("newdir"); os.IsNotExist(err) {
    if mkdirError := os.Mkdir("newdir", os.ModePerm); mkdirError != nil {
      // エラー処理
     }
  }
}

のようにまどろっこしい書き方をしなくちゃいけないのかな、と思いました。が、os.MkdirAll はディレクトリがあった場合は何もしないので以下でいいんですね(たぶん)

import (
  "os"
)

func main() {
  if err := os.MkdirAll("newdir", os.ModePerm); err != nil {
      // エラー処理
  }
}

ちゃんとドキュメントにも書いてありました。 os - The Go Programming Language そりゃそうか。。