一定很简单,但我似乎无法弄清楚。我不断收到“没有这样的文件或目录”错误。以为 Create 函数是创建一个新文件?
package main
import (
"log"
"os"
)
func main() {
f, err := os.Create("~/golang-server.log")
defer f.Close()
if err != nil {
panic(err.Error())
}
log.SetOutput(f)
}
最佳答案
您不能使用~
或$HOME
等环境变量来指定文件路径,它们是字符串文字,表示实际路径。你得到的错误是因为它将 ~/golang-server.log
视为当前目录的相对路径,并且当前目录中没有目录 ~
。
手动创建子目录~
,你的代码会成功:
~/test/ mkdir \~
~/test/ go run t.go
~/test/ ls \~
golang-server.log
所以需要传递一个绝对路径
或者相对路径
给os.Create
。
关于file - golang os.Create 导致 "no such file or directory"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43335989/