golang判断是否存在不存在就创建文件
16lz
2021-01-22
一、判断文件或文件夹是否存在
golang 判断文件或者文件夹是否存在可以通过os.stat() 方法和os.IsExist() 方法来判断:
func isExist(path string)(bool){ _, err := os.Stat(path) if err != nil{ if os.IsExist(err){ return true } if os.IsNotExist(err){ return false } fmt.Println(err) return false } return true}
二、递归创建文件夹
递归文件夹用到os.MkdirAll() 方法:
func MkdirAll(path string, perm FileMode) error
第一个参数是路径,第二个是权限。如果文件夹不存在就创建,存在则不做任何操作。
三、测试代码
package mainimport ( "os" "fmt")//判断文件或文件夹是否存在func isExist(path string)(bool){ _, err := os.Stat(path) if err != nil{ if os.IsExist(err){ return true } if os.IsNotExist(err){ return false } fmt.Println(err) return false } return true}func main(){ //递归创建文件夹 err := os.MkdirAll("./test/1/2", os.ModePerm) if err != nil{ fmt.Println(err) return } dirs := []string{"./test/1", "./test/2", "./test/1.txt"} for _, v := range dirs{ if isExist(v){ fmt.Printf("%s is exist!", v) }else{ fmt.Printf("%s is not exist!", v) } }}
在终端中执行:
ma@ma:/data/code/go/src/file_exist$ tree.└── file_exist.go0 directories, 1 filema@ma:/data/code/go/src/file_exist$ go run file_exist.go # 运行程序./test/1 is exist!./test/2 is not exist!./test/1.txt is not exist!ma@ma:/data/code/go/src/file_exist$ tree .├── file_exist.go└── test └── 1 └── 23 directories, 1 filema@ma:/data/code/go/src/file_exist$ touch test/1.txt # 创建1.txtma@ma:/data/code/go/src/file_exist$ go run file_exist.go ./test/1 is exist!./test/2 is not exist!./test/1.txt is exist! # 1.txt存在
更多golang知识请关注golang教程栏目。
更多相关文章
- golang判断是文件还是文件夹
- XML(3)XDocument与XmlDocument递归读取xml文件
- 共享文件夹
- 小心递归中内存泄漏
- 如何用Python递归地思考问题?
- 用Python清除文件夹中的重复视频
- 宏观视角看递归
- 动画:这一次用动画搞懂递归!
- PHP使用递归按层级查找数据(代码详解)