登录
首页 >  Golang >  Go问答

处理 os.Stat 返回的“文件或目录不存在”情况

来源:stackoverflow

时间:2024-02-28 17:24:27 182浏览 收藏

本篇文章给大家分享《处理 os.Stat 返回的“文件或目录不存在”情况》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

我有一段代码正在查找 stat 一个文件,如果该文件不存在,则返回一些默认值。也就是说,这段代码如下所示:

fileInfo, err := os.Stat(absolutePath)
if err != nil {
    if os.IsNotExist(err) {
        return , nil
    }
    return nil, fmt.Errorf(...)
}

要“捕获”“文件不存在”错误,我读到建议使用 os.isnotexist 来检查错误是否表明文件不存在。但是,os.isnotexist 不会捕获此错误,因为平台返回 open :没有这样的文件或目录。我可以在此处添加自己的错误处理,但是是否有一种惯用的方法来处理 os 调用中的“文件不存在”错误? os.isnotexist 检查处理的错误似乎只是一种潜在的“文件不存在”错误的特殊情况。


正确答案


如果您阅读文档,您会看到以下内容:

func isnotexist

func IsNotExist(err error) bool

isnotexist 返回一个布尔值,指示错误是否已知 报告文件或目录不存在。满足的是 errnotexist 以及一些 syscall 错误。

此函数早于错误。它仅支持 os 包返回的错误。 新代码应使用 errors.is(err, fs.errnotexist)。 [强调。我的]

到这里,我们也就讲完了《处理 os.Stat 返回的“文件或目录不存在”情况》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>