(我是新来的GO)Golang不能写入文件到目录
您好, 我试图写一个文件到使用转到一个目录。
func (p *Page) Save() error {
filepath := DerivePath(p.Title)
fmt.Println(filepath)
content, _ := json.MarshalIndent(p, "", " ")
err := ioutil.WriteFile(filepath, content, 0600)
return err
}
这是代码。第5行中出现的错误,说
open data/Testpage.json: The system cannot find the path specified.
我已经尝试过用os.Create
写入之前创建文件,但它也不管用。
从目录加载data
工作得很好,只能将新文件写入目录失败。
我不明白为什么这不起作用。 我知道这并不是很多信息,但我不知道你还需要什么。
感谢您的提前解答!
编辑: 我的项目结构:
│ .gitignore
│ .project
│
├───bin
│ main.exe
│
├───data
│ Welcome.json
│
├───pkg
│ └───windows_amd64
│ page.a
│
├───src
│ ├───main
│ │ main.go
│ │
│ └───page
│ page.go
│ page_test.go
│
└───templates
view.html
(使用io/ioutils.ReadFile
)读data/Welcome.json
作品就好
来源是可在https://gitlab.com/thyaris/Wiki
控制台输出
D:\GitWorkspaces\Wiki\wiki>go test -v page
=== RUN TestSave
data/Testpage.json
--- FAIL: TestSave (0.00s)
page_test.go:15: open data/Testpage.json: The system cannot find the path specified.
page_test.go:19: 'Testpage.json' was not created
=== RUN TestLoadPage
--- FAIL: TestLoadPage (0.00s)
page_test.go:26: Error while loading
page_test.go:32: File content did not match
=== RUN TestDelete
--- PASS: TestDelete (0.00s)
FAIL
exit status 1
FAIL page 0.094s
您是否拥有该目录的写入权限? –
我在windows上工作,所以我认为这不应该是一个问题。我还假设这也是因为当我还没有写入'data'目录时它工作。 – Thyaris
我刚刚检查了权限,我有权限读取和写入'data'目录中的文件 – Thyaris