重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
go语言如何判断文件是否存在?其实要解决这个问题也不难,这篇文章给出了相对应的分析和解答,下面我们一起来看看解决方法吧。
成都创新互联致力于做网站、成都网站建设,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择成都创新互联,就选择了安全、稳定、美观的网站建设服务!通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。
golang判断文件或文件夹是否存在的方法为使用os.Stat()函数返回的错误值进行判断:
1、如果返回的错误为nil,说明文件或文件夹不存在
2、如果返回的错误类型使用os.IsNotExist()判断为true,说明文件或文件夹存在
3、如果返回的错误为其它类型,则不确定是否在存在
// 判断所给路径文件/文件夹是否存在 func Exists(path string) bool { _, err := os.Stat(path) //os.Stat获取文件信息 if err != nil { if os.IsExist(err) { return true } return false } return true } // 判断所给路径是否为文件夹 func IsDir(path string) bool { s, err := os.Stat(path) if err != nil { return false } return s.IsDir() } // 判断所给路径是否为文件 func IsFile(path string) bool { return !IsDir(path) }
注:
当我们的FileExist返回true时,其实文件并不一定存在。
当我们对目标path中的某一部分没有可读权限时,os.Lstat和syscall.Access同样会返回error,不过这个error不会让os.IsNotExist返回true。
当文件不存在而你对文件所在的目录或者它的上层目录没有访问权限时,FileExist依旧会返回true,bug就在这时发生了。
所以重要的一点是在判断文件是否存在前应该先判断自己对文件及其路径是否有访问权限。
看完这篇文章,你们学会go语言判断文件是否存在的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读。