Avatar ·

如何检查文件或目录在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中是否有更惯用的方法?以及如何在检查后区分文件和目录?