本文摘自php中文网,作者尚,侵删。

一、判断文件或文件夹是否存在
golang 判断文件或者文件夹是否存在可以通过os.stat() 方法和os.IsExist() 方法来判断:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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() 方法:
1 | func MkdirAll(path string, perm FileMode) error
|
第一个参数是路径,第二个是权限。如果文件夹不存在就创建,存在则不做任何操作。
三、测试代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package main
import (
"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)
}
}
}
|
在终端中执行:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ma@ma:/data/code/go/src/file_exist$ tree
.
└── file_exist.go
0 directories, 1 file
ma@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
└── 2
3 directories, 1 file
ma@ma:/data/code/go/src/file_exist$ touch test/1.txt # 创建1.txt
ma@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判断是否存在不存在就创建文件的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
golang 三种指针类型具体类型的指针、unsafe.pointer、uintptr作用
golang 内存泄露的原因
golang 怎么拼接字符串
golang to docker
go 每日一库之 termtables
【发布了go-carbon1.1.1版本】完善对主流orm的支持,新增公共方法
go 执行命令获取结果 golang os/exec stdoutpipe stdinpipe
go - 常用签名算法的基准测试
使用gin封装一个web脚手架(五):实现session(上)
golang解决中文乱码的方法
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » golang判断是否存在不存在就创建文件