请教个问题,没搜到类似情况的。
调用 os.Create 或者 os.WriteFile ,文件名是一个绝对路径,调用前 后边几级目录还没创建,按官方的例子,会自动创建目录,实际使用会报错:
no such file or directory
调用前加了syscall.Umask(0)
,对新创建文件的权限,取消了掩码限制
绝对路径类似于 /Users/admin/xxx/blog/content/zh-CN/post/filedir/test
已有目录 /Users/admin/xxx/blog/content/zh-CN/post 的权限也是 3 个 rwx ,自己在 shell 操作创建也是没问题。
因为拼接的路径,后边几级目录不确定,不至于每次创建一级,就调用个 os.Chmod 吧。。。
官方文档 func WriteFile(name string, data []byte, perm FileMode) error
WriteFile writes data to the named file, creating it if necessary. If the file does not exist, WriteFile creates it with permissions perm (before umask); otherwise WriteFile truncates it before writing, without changing permissions.
err := os.WriteFile("testdata/hello", []byte("Hello, Gophers!"), 0666)
if err != nil {
log.Fatal(err)
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.