登录
首页 >  Golang >  Go问答

获取用户的根目录

来源:stackoverflow

时间:2024-02-10 08:36:22 361浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《获取用户的根目录》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

以下是获取运行用户主目录的最佳方法吗?或者是否有我忽略的特定功能?

os.Getenv("HOME")

如果上述正确,是否有人知道这种方法是否能保证在非 linux 平台上工作,例如windows?


正确答案


从 go 1.12 开始,推荐的方式是:

package main
import (
    "os"
    "fmt"
    "log"
)
func main() {
    dirname, err := os.userhomedir()
    if err != nil {
        log.fatal( err )
    }
    fmt.println( dirname )
}

旧推荐:

在 go 1.0.3(可能也更早)中,以下内容有效:

package main
import (
    "os/user"
    "fmt"
    "log"
)
func main() {
    usr, err := user.current()
    if err != nil {
        log.fatal( err )
    }
    fmt.println( usr.homedir )
}

os.userhomedir()

在go1.12+中你可以使用os.userhomedir()

home, err := os.UserHomeDir()

参见https://golang.org/pkg/os/#UserHomeDir

即使没有启用 cgo(即 from scrap),也应该可以工作,并且无需解析 /etc/passwd 或其他此类废话。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《获取用户的根目录》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>