• 技术文章 >后端开发 >Golang

    go语言怎么判断一个文件是否存在

    青灯夜游青灯夜游2023-01-17 15:47:02原创44

    在go语言中,判断一个文件是否存在,需要使用到“os.Stat()”函数,根据该函数返回的error接口的信息来进行判断;语法“_, err := os.Stat(path) if err == nil{return true, nil}if os.IsNotExist(err){return false, nil}”。如果返回的error为空,则说明文件是存在的。

    本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。

    在 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 说明文件是不存在的。

    判断文件是否存在的案例

    package main
    import (
    	"fmt"
    	"os"
    )
    func main() {
    	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
    }

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

    1.png

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

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

    2.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
    }

    【相关推荐:Go视频教程编程教学

    以上就是go语言怎么判断一个文件是否存在的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:go语言 Golang 文件
    上一篇:go语言中不定参数是什么 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • go语言扩容方法有哪几种• Go语言怎么判断指定字符是否存在• Go语言怎么获取函数执行时间• go语言怎么将float转string类型• GoClipse是什么• go语言中遍历数组的方法有哪些
    1/1

    PHP中文网