如何解决文件路径中的用户环境变量

use*_*040 2 windows environment-variables go

窗户上的 Golang。尝试使用

os.Open("%userprofile%\\myfile.txt")
Run Code Online (Sandbox Code Playgroud)

获取file path not found和 golang 没有解析%userprofile%到我的C:\users\myusername文件夹。

ret*_*its 6

要获得文件句柄,并使您的程序也具有一点可移植性,请尝试

userprofile := os.Getenv("USERPROFILE")
f, err := os.Open(path.Join(userprofile, "myfile.txt"))
Run Code Online (Sandbox Code Playgroud)

os.Getenv()会读取环境变量,path.Join()将采取适当的构建路径(所以没必要做护理\\)。

而不是os.Getenv()你可能也想看看os.LookupEnv()。这将告诉您要查找的环境变量是空的还是根本不存在。关于如何使用它来设置默认值的一个很好的例子可以在这个关于 SO 的答案中找到。