file - golang os.Create 导致 "no such file or directory"错误

标签 file go

一定很简单,但我似乎无法弄清楚。我不断收到“没有这样的文件或目录”错误。以为 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/

相关文章:

file - 即时创建 zip 文件以通过 node.js 下载

file - 外部文件中的 Log4Net 配置不起作用

php - 从文件中读取最后一行

http - 在 golang X ms 之后以编程方式关闭 http 连接

python - 将 "None"写入 python 文件

java - 如何从 Java 编写的文件中读取 C 语言的数据(二进制或文本)?

go - 如何使用 mapstructure 标签作为 json 标签?

go - 滑行更新清空 glide.lock

html - 如何在 Atom 中语法高亮 go 模板文件?

mongodb - 在命令提示符下将git与mongodb一起使用时出现问题