为了账号安全,请及时绑定邮箱和手机立即绑定

如何读取包含波浪号的文件/路径

如何读取包含波浪号的文件/路径

Go
POPMUISE 2022-06-13 15:05:15
下面的代码给出了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(),它会根据您的操作系统读取适当的环境变量。



查看完整回答
反对 回复 2022-06-13
?
喵喔喔

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)

}


查看完整回答
反对 回复 2022-06-13
  • 2 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信