我正在try 从GO可执行文件(如‘dir1/dir2/dir3’)创建一组嵌套目录.我已经成功地使用以下行创建了单个目录:

os.Mkdir("." + string(filepath.Separator) + c.Args().First(),0777);

但是,我不知道如何在该目录内创建一组预定的嵌套目录.

推荐答案

os.Mkdir用于创建单个目录.要创建文件夹路径,请try 使用:

os.MkdirAll(folderPath, os.ModePerm)

Go documentation

func MkdirAll(路径字符串,perm FileMode)错误

MkdirAll创建名为path的目录以及任何必要的父级,并返回nil,否则返回错误.权限位perm用于MkdirAll创建的所有目录.如果path已经是一个目录,则MkdirAll不执行任何操作并返回nil.

Edit:

已更新以正确使用os.ModePerm.
对于文件路径的连接,请使用@Chris的答案中所述的包path/filepath.

Go相关问答推荐

如何复制*C.char?

如何使用Gorilla WebSockets实现Http.Hijacker&;alexedwards/scs/v2

如何在GoFr中为生产和本地环境设置不同的配置?

如何在Golang中覆盖404

Golang Gorm Fiber - 如何将定义为别名的名称发送到索引模板?

hyperledger fabric - go:在 $PATH 中找不到可执行文件

最长连续重复的字符golang

加密/椭圆:try 在无效点上进行操作

具有两个参数的动态规划:天数和优惠券

设置指向空接口的指针

go:embed 文件扩展名模式

Golang Getrlimit 返回与 ulimit 不同的值

在我的情况下,如何以正确的方式测试方法?

当有多个同名包时如何在vscode中显示golang包完整路径?

Go 并发、goroutine 同步和关闭通道

Gorm 在保存/创建时序列化 struct

golang 如何从字符串中查找表情符号?

gopls 为 github.com/Shopify/sarama 返回错误gopls: no packages returned: packages.Load error

在 VSCode 中使用命令行参数调试 Go 测试

如何允许可转换为指针的泛型类型参数化另一种可转换为指针的泛型类型?