为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查Go中是否存在文件?

如何检查Go中是否存在文件?

Go
九州编程 2021-05-11 17:37:39
Go的标准库没有专门用于检查文件是否存在的函数(如Python的os.path.exists)。什么是惯用的方式做到这一点?
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

要检查文件是否不存在,等同于Python的文件if not os.path.exists(filename):


if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) {

  // path/to/whatever does not exist

}

要检查文件是否存在,等同于Python的文件if os.path.exists(filename):


编辑:根据最近的评论


if _, err := os.Stat("/path/to/whatever"); err == nil {

  // path/to/whatever exists


} else if os.IsNotExist(err) {

  // path/to/whatever does *not* exist


} else {

  // Schrodinger: file may or may not exist. See err for details.


  // Therefore, do *NOT* use !os.IsNotExist(err) to test for file existence



}


查看完整回答
反对 回复 2021-05-17
?
开满天机

TA贡献1786条经验 获得超13个赞

您应该像下面的示例中那样使用os.Stat()andos.IsNotExist()函数:


// Exists reports whether the named file or directory exists.

func Exists(name string) bool {

    if _, err := os.Stat(name); err != nil {

        if os.IsNotExist(err) {

            return false

        }

    }

    return true

}

该示例从此处提取。


查看完整回答
反对 回复 2021-05-17
  • 3 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信