👌

Goで相対パスを絶対パスに変換する

2022/10/12に公開

要約

filepath.Absを使うと、現在の作業ディレクトリを起点にパスを変換します。

方法

前述のとおりfilepath.Absを使います。

package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    path := `./css/main.css`
    abspath, _ := filepath.Abs(path)
    fmt.Println(abspath)
}

この方法で相対パスから絶対パスの変換が可能です。(playgroundの結果ではイマイチわかりにくいですが...)

別パッケージ上で呼び出す場合でも、相対パスの起点になるのは現在の作業ディレクトリなので注意しましょう。
通常はビルドした実行ファイルのあるパスやmain.goのパスとなりますが、os.Chdirで作業ディレクトリを変更していた場合にはその変更先となります。

ではまた!

Discussion