ノードに「path.resolve」のようなAPIがありますか?または何か同じことができますか?
例(nodejsコード):path.resolve("~/sample.sh")
得られるべきもの:/home/currentuser/sample.sh
_~
_(ユーザーのホームを示す)の解決は別の話であり、通常、これを解決するのはシェルです。詳細については、「 チルダをホームディレクトリに展開する 」を参照してください。
Goコードから実行する場合は、 user.Current()
関数を使用して、_User.HomeDir
_になるホームフォルダーなど、現在のユーザーに関する詳細を取得できます。それでも、これを自分で交換する必要があります。
元の答えは次のとおりです。
path.Join()
または filepath.Join()
を使用できます。
例えば:
_base := "/home/bob"
fmt.Println(path.Join(base, "work/go", "src/github.com"))
_
出力:
_/home/bob/work/go/src/github.com
_
path.Clean()
および filepath.Clean()
を使用して、ドット_.
_およびダブルドット_..
_を「削除」できます。あなたの道から。
filepath.Abs()
を使用して、相対パスを解決し、絶対パスを取得することができます(絶対パスでない場合は作業ディレクトリを追加します)。 filepath.Abs()
は、結果に対してClean()
も呼び出します。
例えば:
_fmt.Println(filepath.Abs("/home/bob/../alice"))
_
出力:
_/home/alice <nil>
_
Go Playground の例を試してください。
関連する質問を参照してください: 相対パスからの絶対パスの解決