Pau*_*ane 81 go home-directory
以下是获取正在运行的用户主目录的最佳方法吗?或者我有一个特定的功能吗?
os.Getenv("HOME")
Run Code Online (Sandbox Code Playgroud)
如果以上是正确的,那么是否有人知道这种方法是否可以保证在非Linux平台上运行,例如Windows?
Vla*_*nko 159
在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 )
}
Run Code Online (Sandbox Code Playgroud)
如果是交叉编译重要的是,考虑的homedir
图书馆
Coo*_*J86 26
在go1.12 +中,您可以使用os.UserHomeDir()
home, err := os.UserHomeDir()
Run Code Online (Sandbox Code Playgroud)
参见https://golang.org/pkg/os/#UserHomeDir
即使未启用CGO(即FROM scratch
),也无需解析/etc/passwd
或其他类似的废话,该方法也可以工作。
pet*_*rSO 20
例如,
package main
import (
"fmt"
"os"
"runtime"
)
func UserHomeDir() string {
if runtime.GOOS == "windows" {
home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH")
if home == "" {
home = os.Getenv("USERPROFILE")
}
return home
}
return os.Getenv("HOME")
}
func main() {
dir := UserHomeDir()
fmt.Println(dir)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39116 次 |
最近记录: |