如何检查文件是否在Go中存在?
大家好!我是一名Go初学者,正在编写一个处理日志的小工具。我需要在打开文件之前检查它是否存在于磁盘上。在Python中,我习惯使用os.path.exists(),但在Go中找不到类似的方法。
我尝试过使用os.Stat(),但不确定是否正确。以下是我当前的代码:
package main
import (
"fmt"
"os"
)
func main() {
path := "/tmp/myfile.log"
// 如何检查文件是否存在?
_, err := os.Stat(path)
if err == nil {
fmt.Println("文件存在!")
} else {
fmt.Println("文件不存在!")
}
}
问题在于os.Stat()不仅会在文件不存在时返回错误,还会在其他问题(如权限不足)时返回错误。我得到了误报。如何正确编写检查?是否需要使用os.IsNotExist()?或者标准库中有没有专门的方法?