Answers:
// exists returns whether the given file or directory exists
func exists(path string) (bool, error) {
_, err := os.Stat(path)
if err == nil { return true, nil }
if os.IsNotExist(err) { return false, nil }
return false, err
}
编辑以添加错误处理。
panic
用于实际的“异常”对象。您可以通过调用来“赶上” recover
。显式返回a err
作为第二个返回值是一种非常普遍的惯用Go技术。请参阅:golang.org/doc/effective_go.html#errors
if _, err := os.Stat("./conf/app.ini"); err == nil { /*exists*/ } else { /*not exists or some other error*/ }
您可以使用:
if _, err := os.Stat("./conf/app.ini"); err != nil {
if os.IsNotExist(err) {
// file does not exist
} else {
// other error
}
}
检查文件是否存在的简单方法:
if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) {
// path/to/whatever does not exist
}
if _, err := os.Stat("/path/to/whatever"); err == nil {
// path/to/whatever exists
}
资料来源:
有一种简单的方法可以检查文件是否存在:
if _, err := os.Stat("./conf/app.ini"); err != nil {
if os.IsNotExist(err) {
..... //Shows error if file not exists
} else {
..... // Shows success message like file is there
}
}
f, err := os.Open(name)
或f, err := os.OpenFile(name,os.O_CREATE|os.O_EXCL, mode)
然后进行检查os.IsNotExist(err)
)。