1. ホーム
  2. go

[解決済み] ユーザーのホームディレクトリを取得する

2022-10-28 15:02:19

質問

実行ユーザのホームディレクトリを取得する方法は、以下の方法が最適でしょうか?または、私が探している特定の関数がありますか?

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 )
}