我正在尝试打开一个文件,我想知道它是否存在不起作用.但错误
os.OpenFile(fName, os.O_WRONLY, 0600)
Run Code Online (Sandbox Code Playgroud)
当文件不存在时返回与os.ErrNotExists不同
os.ErrNotExists -> "file does not exist"
err.(*os.PathError).Err -> "no such file or directory"
Run Code Online (Sandbox Code Playgroud)
如果文件不存在,os.Stat也会返回相同的错误.是否存在我可以比较的预定义错误,而不是必须手动执行?
pet*_*rSO 12
Run Code Online (Sandbox Code Playgroud)func IsExist(err error) boolIsExist返回一个布尔值,指示是否已知错误报告文件或目录已存在.ErrExist满足它以及一些系统调用错误.
Run Code Online (Sandbox Code Playgroud)func IsNotExist(err error) boolIsNotExist返回一个布尔值,指示是否已知错误报告文件或目录不存在.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)
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
File Does Not Exist: open No File: No such file or directory
Run Code Online (Sandbox Code Playgroud)