首页 > 其他分享 >go判断文件是否存在、是否是目录

go判断文件是否存在、是否是目录

时间:2023-03-25 15:05:43浏览次数:36  
标签:Stat return err 是否是 error go path os 目录


判断文件或目录是否存在

使用os.IsNotExist方法

使用os.IsNotExist的前提是有一个error,且这个err类型是ErrNotExist。
使用os.Stat可以获取ErrNotExist。

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

使用os.IsExist方法

使用os.IsExist的前提也是得有一个error,但是文件存在的error很少有,所以error是空就是文件存在了。

func Exists2(path string) bool {
	_, err := os.Stat(path)
	if err == nil || os.IsExist(err) {
		return true
	}
	return false
}

判断是否是目录

func IsDir(path string) bool {
	s, err := os.Stat(path)
	if err != nil {
		return false
	}
	return s.IsDir()
}


标签:Stat,return,err,是否是,error,go,path,os,目录
From: https://blog.51cto.com/lilongsy/6149486

相关文章

  • Go语言拼接URL路径的三种方法
    Go语言拼接URL路径有多种方法建议用ResolveReference。JoinPathJoinPath会把多个多个路径合并成一个路径,并且处理../和./,多个//合并成单个/。packagemainimport( "fmt"......
  • go语言int64整型转字符串
    go语言中string(int)会把int当成UTF-8的Unicode值,转换成对应的字符,标准库strconv是专门用来实现基本数据类型和其字符串表示的相互转换。packagemainimport( "fmt" "s......
  • Gorm 实现无限树形菜单
    原文链接:https://www.zhoubotong.site/post/91.html通常树形菜单的实现基本就是递归调用,大部分场景毕竟这种数据不多,性能倒是并不突出,下面给个demo,有兴趣的朋友可以看......
  • 【入门】Go语言变量详解
    目录一、变量赋值的几种方式1.1声明单个变量1.2声明多个变量1.3初始化变量1.4变量赋值1.5自动推导类型方式声明变量二、输出输入格式控制2.1输出格式2.1输入格式2.3......
  • go gin web应用-通过中间件形式实现通用的参数检验
    都知道gin在web开发方面应用广泛,但在参数校验上,之前写一堆POST接口的时候,每个接口的业务代码里都要去实现validate校验逻辑,感觉代码复用糟糕。为解决这问题,想到通过......
  • go-pprof
    非侵入式的分析工具。主要分为几个阶段。1、收集运行信息引入包import"runtime/pprof"varcpuprofile=flag.String("cpuprofile","","writecpuprofileto......
  • 关于go-vendor和go-mod
    govendor在这个时间节点来讲的话,可能有些古典的气质了。govendor依旧在gomod的架构来讲,=gomodvendor这个是当时依赖于goland这个ide的环境中,默认会生成对应当前项......
  • 前端RSA非对称加密Go解密
    Person:JavaScript实现非对称加密ChatGPT:JavaScript可以使用公钥密码学算法来实现非对称加密。常用的公钥密码学算法包括RSA和ECC。下面是一个使用RSA算法......
  • 常见windows和linux的敏感目录
    Windows下:c:/boot.ini//查看系统版本c:/windows/php.ini//php配置信息c:/windows/my.ini//MYSQL配置文件,记录管理员登陆过的MYSQL用户名和密码c:/winnt/php.inic:......
  • go语言学习-grpc-1
    grpc简介gRPC由google开发,是一款语言中立、平台中立、开源的远程过程调用系统,gRPC客户端和服务端可以在多种环境中运行和交互,例如用java写一个服务端,可以用go语言写客户端......