Avatar ·

如何检查文件是否在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()?或者标准库中有没有专门的方法?