package osutil import ( "os" ) func Exists(name string) bool { _, err := os.Stat(name) return !os.IsNotExist(err) } なぜ、IsExist(err)のほうを使わないかというと http://golang.org/src/pkg/os/error_posix.go を見ればわかります。IsExist()はerrがnilのときはfalseを返すからです。err == nil | os.IsExist(err)と書けばよいという話もありますが、errがnilのときfalseを返すということはIsExist()はファイル上書きの時に存在していたらエラーという時のためにあるのだと思います。syscall.EEXISTと比較している箇所もありますし。 IsNotExistのほうなら、os.