如何检查Golang中是否存在由path表示的文件或目录?

我想检查我的Golang代码中是否存在./conf/app.ini文件。 但我找不到一个好方法来做到这一点。

我知道在Java中有一个File的方法: public boolean exists() ,如果文件或目录存在,则返回true。

但是如何在Golang中做到这一点?

 // exists returns whether the given file or directory exists or not func exists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return true, err } 

编辑添加error handling。

你可以使用这个:

 if _, err := os.Stat("./conf/app.ini"); err != nil { if os.IsNotExist(err) { // file does not exist } else { // other error } } 

请参阅: http : //golang.org/pkg/os/#IsNotExist

更多的是一个FYI,因为我环顾了几分钟,认为我的问题是一个快速search。

如何检查path是否代表Go中的现有目录?

这是我search结果中最受欢迎的答案,但是在这里和其他地方,解决scheme只提供存在检查。 要检查path代performance有的目录,我发现我可以很容易地:

 path := GetSomePath(); if stat, err := os.Stat(path); err == nil && stat.IsDir() { // path is a directory } 

我的部分问题是我期望path/filepath包中包含isDir()函数。