尝试在新创建的目录中创建文件时是否拒绝权限? [英] Go "permission denied" when trying to create a file in a newly created directory?

查看:0
本文介绍了尝试在新创建的目录中创建文件时是否拒绝权限?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用os.Mkdir()创建一个目录,然后在其中创建文件,类似于以下脚本:

package main

import (
    "log"
    "os"
    "path"
)

func main() {
    dir := "test_dir"

    os.Mkdir(dir, os.ModeDir)

    fileName := path.Join(dir, "file.txt")

    _, err := os.Create(fileName)
    if err != nil {
        log.Fatalf("create file: %v", err)
    }
}

但是,如果我运行此命令,我会收到

> go run fileperms.go
2019/10/15 14:44:02 create file: open test_dir/file.txt: permission denied
exit status 1
https://golang.org/pkg/os/#FileMode我不是很清楚如何指定FileMode以允许相同的脚本在新创建的目录中创建文件。我如何实现这一点?

推荐答案

我发现,如果我将权限设置为0777

,我可以在目录中创建文件
package main

import (
    "io/ioutil"
    "os"
    "path"
)

func main() {
    dir := "test_dir"

    os.Mkdir(dir, 0777)

    fileName := path.Join(dir, "file.txt")

    ioutil.WriteFile(fileName, []byte("foobar"), 0666)
}

现在使用预期内容创建了文件:

> cat test_dir/file.txt 
foobar⏎ 

这篇关于尝试在新创建的目录中创建文件时是否拒绝权限?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆