首页 >后端开发 >Golang >如何在 Go 中检查文件是否存在?

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

Barbara Streisand
Barbara Streisand原创
2024-12-26 21:28:10834浏览

How Can I Check for File Existence in Go?

在 Go 中检查文件是否存在

在 Go 中处理文件时,通常需要先确定文件是否存在,然后再进行进一步操作。与 Python 的 os.path.exists 不同,Go 标准库没有提供用于此目的的直接函数。

检查文件存在的惯用方法

检查是否存在文件不存在:

if _, err := os.Stat("/path/to/whatever"); errors.Is(err, os.ErrNotExist) {
  // path/to/whatever does not exist
}

检查文件是否存在存在:

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

} else if errors.Is(err, os.ErrNotExist) {
  // 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
}

说明

os.Stat 函数返回表示文件属性的 FileInfo 对象,如果文件不存在,则返回错误。通过使用errors.Is函数将错误与os.ErrNotExist进行比较,您可以区分文件不存在和其他错误。

注意

避免使用os.IsNotExist 的否定(例如!os.IsNotExist(err))来测试文件是否存在,因为它可能会导致在某些情况下会出现意想不到的行为。

以上是如何在 Go 中检查文件是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn