読者です 読者をやめる 読者になる 読者になる

Go でディレクトリを掘る

Go Programming

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

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 そりゃそうか。。