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


本文摘自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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...