如何检查文件或目录在Go中是否存在?
大家好!我刚开始学习Go,遇到了一个看似简单的任务:我需要编写一个函数来检查给定路径下是否存在文件或文件夹。我习惯了Python中的`os.path.exists()`,但在Go中我找不到同样简单的方法。
我尝试过使用`os.Stat()`,但不太明白如何正确处理错误。例如,我写了这样的代码:
```go
package main
import (
"fmt"
"os"
)
func main() {
path := "./test.txt"
_, err := os.Stat(path)
if err == nil {
fmt.Println("文件存在")
} else if os.IsNotExist(err) {
fmt.Println("文件不存在")
} else {
fmt.Println("发生错误:", err)
}
}
```
但我困惑的是,`os.Stat()`不仅会在文件不存在时返回错误,还会在其他问题(例如权限不足)时返回错误。我这样做对吗?Go中是否有更惯用的方法?以及如何在检查后区分文件和目录?