尝试在新创建的目录中创建文件时进入“权限被拒绝?”

问题描述 投票:0回答:1

我正在尝试使用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,以便允许同一脚本在新创建的目录中创建文件。我该如何实现?

go file-permissions
1个回答
1
投票

[我发现如果将权限设置为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⏎ 
© www.soinside.com 2019 - 2024. All rights reserved.