2017-04-11 139 views
1

必须是简单的东西,但我似乎无法弄清楚。我不断收到“没有这样的文件或目录”错误。认为创建功能是创建一个新的文件? 包主要golang os.Create cause“没有这样的文件或目录”错误

import (
    "log" 
    "os" 
) 

func main() { 
    f, err := os.Create("~/golang-server.log") 
    defer f.Close() 
    if err != nil { 
    panic(err.Error()) 
    } 
    log.SetOutput(f) 
} 
+0

这通常意味着目标_directory_不存在。 – Flimzy

回答

3

不能使用~或环境变量类似$HOME指定文件路径,他们的字符串文字,意味着实际路径。您得到的错误是因为它将~/golang-server.log视为当前目录的相对路径,并且当前目录中没有目录~

随着手动创建子目录~,你的代码就会成功:

 ~/test/ mkdir \~ 
 ~/test/ go run t.go 
 ~/test/ ls \~ 
golang-server.log 

所以需要一个absolute pathrelative path传递给os.Create

+0

谢谢!有效。 – Bruce

相关问题