golang如何创建目录

golang中关于目录与文件名等操作都在os这个包中,具体的创建目录都是通过MkdirMkdirAll这2个函数来实现的,这两个函数用法一致

os.Mkdir(dirName string, perm FileMode)

1、dirName即要创建的目录(文件夹路径),可以是绝对路径,也可以是相对路径(相对于GOPATH)

2、perm表示创建的目录的权限,如0777(读r权限值为4,写权限w值为2,执行权限x值为1)

例如:我要在/data/program/goapp这个目录下创建一个golang这个子目录,示例如下:

package main
 
import (
   "os"
   "fmt"
)
 
func main() {
   err := os.Mkdir("/data/program/goapp/golang", 0666)
   if err != nil {
      fmt.Println(err)
   }
}

Mkdir和MkdirAll的区别

1、Mkdir创建目录,它的父级目录必须是存在的,不然创建会失败

2、MkdirAll可以递归创建目录,即只要根目录存在即可,如下:

err := os.MkdirAll("/data/program/goapp/golang/test/hello", 0766)
if err != nil {
   fmt.Println(err)
}

本例中:/data/program/goapp是已经存在的目录,而子目录golang/test/hello是不存在,此时要使用MkdirAll来创建