golang中关于目录与文件名等操作都在os这个包中,具体的创建目录都是通过Mkdir和MkdirAll这2个函数来实现的,这两个函数用法一致
os.Mkdir(dirName string, perm FileMode)dirName即要创建的目录(文件夹路径),可以是绝对路径,也可以是相对路径(相对于GOPATH)
perm表示创建的目录的权限,如0777(读r权限值为4,写权限w值为2,执行权限x值为1)
如:我要在/data/program/goapp这个目录下创建一个golang这个子目录,示例如下:
package mainimport (
"os"
"fmt"
)
func main() {
err := os.Mkdir("/data/program/goapp/golang", 0666)
if err != nil {
fmt.Println(err)
}
}
注:Mkdir和MkdirAll的区别
Mkdir创建目录,它的父级目录必须是存在的,不然创建会失败
MkdirAll可以递归创建目录,即只要根目录存在即可,如下:
err := os.MkdirAll("/data/program/goapp/golang/test/hello", 0766)if err != nil {
fmt.Println(err)
}
本例中:/data/program/goapp是已经存在的目录,而子目录golang/test/hello是不存在,此时要使用MkdirAll来创建
一直直接操作的框架 使用vscode 打开就会自动装包,这次想写一个简单应用,确不会怎么建项目,记录如下。
go1.14 后,以及不再需要把项目写在GOPATH下,所有不需要再配置。
配置GOPRXY goenv-w GOPROXY=https://goproxy.cn,direct(国内无法访问https://proxy.golang.org)
使用go mod方法新建项目。
任意位置新建文件夹。
文件夹下执行go mod xxx ,生成一个go.mod文件。
新建一个main.go文件,就可以直接运行了。
我开始的时候,先建了main.go文件,再执行的go.mod。后面没法运行。
参考:李文周的博客。