背景:
自己在开发时候使用的Log4go日志包的时候,发现在指定日志文件夹路径的时候需要先确定有该文件夹,否则会进行报错,所以我们就需要提前进行相关的文件夹创建,下面就是一个小的方案,实现运行程序的时候先进行判断,是否需要进行相关的
文件夹创建,如果查询没有该文件夹就会进行相关的创建,否则就不创建:
具体的步骤:
首先判断文件夹是否存在的方法: 如果存在就会返回true,否则返回false
//判断文件夹是否存在
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
}
然后进行相关的测试:在开发中_dir中表示的是文件夹路径,一般在开发中,我们通过配置文件的方式进行获取,这样就可以进行配置了,不用写死。
func Test(t *testing.T) {
_dir := "./conf"
exist, err := PathExists(_dir)
if err != nil {
fmt.Printf("get dir error![%v]\n", err)
return
}
if exist {
fmt.Printf("has dir![%v]\n", _dir)
} else {
fmt.Printf("no dir![%v]\n", _dir)
//创建文件夹
err := os.Mkdir(_dir, os.ModePerm)
if err != nil {
fmt.Printf("mkdir falied[%v]\n", err)
} else {
fmt.Printf("mkdir success!\n")
}
}
}
最后测试:
=== RUN Test
no dir![./conf]
mkdir success!
--- PASS: TestMkdir (0.00s)
PASS