👌

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

2022/10/11に公開約500字

要約

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

方法

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

package main

import (
	"fmt"
	"path/filepath"
)

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

https://go.dev/play/p/P1ni3nJ4aNQ

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

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

https://pkg.go.dev/path/filepath#Abs

ではまた!

Discussion

ログインするとコメントできます