如GoDocs所述,os.Create()
函数可以在指定路径下创建一个文件。
os.Create("fonts/foo/font.eot")
但当 fonts
或 foo
不存在时,它会返回 panic: open fonts/foo/font.eot: 系统找不到指定的路径。
所以我使用了os.MkdirAll()
来创建嵌套目录。但是这个函数还有许多其他问题。
path := "fonts/foo/font.eot"
// this line create a directory named (font.eot) !
os.MkdirAll(path, os.ModePerm)
有更好的方法在嵌套目录中创建文件吗?
mkdir
和open
系统调用。你所指的“许多其他问题”是什么? - oakad0777
而不是0770
。文件创建通常应使用模式0666
。如果需要,这些允许用户的umask去除组和/或其他写权限,甚至更多的权限(导致目录的模式为0750或0700)。(我在其他地方看到过使用0770的建议,但不确定其源头。) - torek