Go语言判断文件是否存在

Go语言判断文件是否存在教程

Golang 中,判断 文件 或者目录是否存在,需要使用到 os.Stat 函数,根据 os.Stat 函数返回的 error 接口的信息来判断。

Go语言判断文件是否存在

语法

_, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil }

说明

使用 os.Stat 获取目录信息,如果返回的 error 为空,那么说明文件是存在的,如果返回的错误信息是 os.IsNotExist 说明文件是不存在的。

案例

Golang判断文件是否存在

使用 os.Stat ,判断文件是否存在

package main import ( "fmt" "os" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") var( fileName = "C:/haicoder.txt" ) _, err := os.Stat(fileName) if err == nil{ fmt.Println("File exist") return } if os.IsNotExist(err){ fmt.Println("File not exist") return } fmt.Println("File error") return }

程序运行后,控制台输出如下:

25_golang判断文件是否存在.png

使用 os.Stat 获取文件的信息,根据返回的错误信息判断文件是否存在,如果 err 是空,那么说明文件是存在的,如果返回的 err 不是空,并且是 IsNotExist ,那么说明文件不存在。

因为,我们运行程序时,文件 “C:/haicoder.txt” 不存在,因此,程序输出了 “File not exist”,现在,我们创建文件 “C:/haicoder.txt”,再次运行程序,控制台输出如下:

26_golang判断文件是否存在.png

此时,我们看到,程序输出了 “File exist”。

Go语言判断文件是否存在总结

_, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil }

使用 os.Stat 获取目录信息,如果返回的 error 为空,那么说明文件是存在的,如果返回的错误信息是 os.IsNotExist 说明文件是不存在的。我们也可以将该功能封装为一个函数:

func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err }