👌
Goで相対パスを絶対パスに変換する
要約
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