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

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

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

本教程操作环境: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}

登录后复制登录后复制

说明:

立即学习“go语言免费学习笔记(深入)”;

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

判断文件是否存在的案例

package mainimport ("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语言怎么判断一个文件是否存在的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2414801.html

(0)
上一篇 2025年3月3日 00:45:51
下一篇 2025年2月23日 21:57:43

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Go语言中转义符是什么

    在Go语言中,转义字符是一种特殊的字符常量,以反斜线””开头,后跟一个或几个字符,具有不同于字符原有的意义。所谓转义,可以理解为 “采用某些方式暂时取消该字符本来的含义”,这里的 “某种方式” 指的就是在指定字符前添…

    2025年3月3日 编程技术
    200
  • go语言怎么并发

    Go语言通过编译器运行时(runtime),从语言上支持了并发的特性;并发是通过goroutine完成。goroutine是一种非常轻量级的实现,可在单个进程里执行成千上万的并发任务,它是Go语言并发设计的核心。使用go关键字就可以创建go…

    2025年3月3日
    200
  • go语言中for的写法有哪些

    Go 语言的For循环有3种写法:1、和C语言for一样的写法,语法“for init; condition; post {…}”;2、和C语言while一样的写法,语法“for condition {…}”;3、和…

    2025年3月3日
    200
  • golang有没有in

    golang没有in。golang中即没有提供类似Python操作符in,也没有像其他语言那样提供这样的标准库函数,如PHP中in_array。原因:1、in功能实现非常简单,没有必要;2、在不同场景下,我们还需要根据实际情况分析用哪种方式…

    2025年3月3日
    200
  • go语言中range关键字怎么用

    在go语言中, range关键字用于for循环中迭代数组、切片、通道或集合的元素;“for range”结构类似于其他语言中的foreach语句,在数组和切片中它返回元素的索引和索引对应的值,在集合中返回“key-value”对;语法“fo…

    2025年3月3日
    200
  • Go语言中注释有什么作用

    注释在程序中的作用是对程序进行注解和说明,高程序代码的可读性,便于对源码的阅读;目的是为了让别人和自己很容易看懂,一看就知道这段代码是做什么用的。go的注释有行注释“//”和块注释“/* */”之分;在实际的使用中,行注释使用得比较多,块注…

    2025年3月3日
    200
  • go语言中return怎么用

    在go语言中,return关键字用于终止函数并可选地返回一个或多个结果值。如果return语句使用在普通的 函数中,可表示跳出该函数,不再执行函数中return后面的代码;如果return语句使用在main函数中,则表示终止main函数,也…

    2025年3月3日 编程技术
    200
  • go语言中反射三定律是什么

    反射三定律:1、反射可以将“接口类型变量”转换为“反射类型对象”,这里反射类型指“reflect.Type”和 “reflect.Value”;2、反射可以将“反射类型对象”转换为“接口类型变量”;3、如果要修改“反射类型对象”其值必须是“…

    2025年3月3日 编程技术
    200
  • go语言依赖注入是什么

    在go语言中,依赖注入(DI)是一种解耦组件之间依赖关系的设计模式;在需要的时候,不同组件之间可以通过一个统一的界面获取其它组件中的对象和状态。依赖注入的好处是解耦;而解耦又能带来更多的好处:代码扩展性增强,代码的可维护性增强,更容易进行单…

    2025年3月3日
    200
  • go语言有没有注解

    go语言没有注解。go语言不支持注解的原因:1、Go在设计上更倾向于明确的、显式的编程风格;2、对比现有代码方法,这种装饰器的新的方法没有提供比现有方法更多的优势,大到足矣推翻原有的设计思路;3、社区内的投票,支持的也很少。 本教程操作环境…

    2025年3月3日
    200

发表回复

登录后才能评论