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

下面的代码给出了ENOENT (2)你知道如何获取包含波浪号的文件的统计信息吗?


file := "~/.zshrc"

fileStat, err := os.Stat(file)

if err != nil {

    return 0, err

}


POPMUISE
浏览 153回答 2
2回答

皈依舞

波浪号不是文件系统调用能够解释的东西 - 它仅在像 bash 这样的 shell 中有意义,它通常将其解释为$HOME. 所以你可能想要使用os.Getenv("HOME")然后~用结果替换。或者,正如 Allon Guralnek 在评论中所建议的那样,使用os.UserHomeDir(),它会根据您的操作系统读取适当的环境变量。

喵喔喔

您可以使用 os/user 包访问当前用户的主目录。这样的事情会让你接近你想要的:package mainimport (    "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)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go