我正在尝试打开一个文件,我想知道它是否存在不起作用。但错误
os.OpenFile(fName, os.O_WRONLY, 0600)
当文件不存在时,返回与os.ErrNotExists不同
os.ErrNotExists -> "file does not exist"
err.(*os.PathError).Err -> "no such file or directory"
如果文件不存在,os.Stat也会返回相同的错误。是否存在我可以比较的预定义错误,而不是必须手动执行?
答案 0 :(得分:11)
func IsExist(err error) bool
IsExist返回一个布尔值,指示错误是否已知 报告文件或目录已存在。它很满意 ErrExist以及一些系统调用错误。
func IsNotExist(err error) bool
IsNotExist返回一个布尔值,指示错误是否已知 报告文件或目录不存在。它很满意 ErrNotExist以及一些系统调用错误。
使用os.IsNotExist
功能。例如,
package main
import (
"fmt"
"os"
)
func main() {
fname := "No File"
_, err := os.OpenFile(fname, os.O_WRONLY, 0600)
if err != nil {
if os.IsNotExist(err) {
fmt.Print("File Does Not Exist: ")
}
fmt.Println(err)
}
}
输出:
File Does Not Exist: open No File: No such file or directory