如何检查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()函数。