• 技术文章 >后端开发 >Golang

    golang判断是否存在不存在就创建文件

    尚2019-12-14 10:45:46原创5526

    一、判断文件或文件夹是否存在

    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 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)
            }
        }
    }

    在终端中执行:

    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判断是否存在不存在就创建文件的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:golang
    上一篇:golang中定义不定长数组的方法 下一篇:dart和golang区别
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• golang lua怎么用• golang web需要框架么• golang并发编程是什么• golang能做高并发的原因
    1/1

    PHP中文网