下面的代码给出了ENOENT (2)你知道如何获取包含波浪号的文件的统计信息吗?file := "~/.zshrc"fileStat, err := os.Stat(file)if err != nil { return 0, err}
2 回答
皈依舞
TA贡献1851条经验 获得超3个赞
波浪号不是文件系统调用能够解释的东西 - 它仅在像 bash 这样的 shell 中有意义,它通常将其解释为$HOME
. 所以你可能想要使用os.Getenv("HOME")
然后~
用结果替换。或者,正如 Allon Guralnek 在评论中所建议的那样,使用os.UserHomeDir()
,它会根据您的操作系统读取适当的环境变量。
喵喔喔
TA贡献1735条经验 获得超5个赞
您可以使用 os/user 包访问当前用户的主目录。
这样的事情会让你接近你想要的:
package main
import (
"fmt"
"log"
"os"
"os/user"
)
func main() {
usr, err := user.Current()
if err != nil {
log.Fatal(err)
}
fmt.Println(usr.HomeDir)
file := usr.HomeDir + "/.zshrc"
fileStat, err := os.Stat(file)
if err != nil {
log.Fatal(err)
}
fmt.Println(fileStat)
}
- 2 回答
- 0 关注
- 152 浏览
添加回答
举报
0/150
提交
取消