Go言語で現在実行中のファイルのディレクトリを取得するには、osパッケージのExecutable関数やfilepathパッケージのDir関数を使えばOKです!
以下のサンプルコードで現在実行中のファイルのディレクトリを取得できます。
import (
"fmt"
"os"
"path/filepath"
)
func main() {
// 現在実行中のファイルの絶対パスを取得
exe, err := os.Executable()
if err != nil {
panic(err)
}
fmt.Println(exe) // /Users/panda/go/bin/hello
// 現在実行中のファイルのディレクトリを取得
dir := filepath.Dir(exe)
fmt.Println(dir) // /Users/panda/go/bin
}
取得した実行ファイルのパスを基にfilepathパッケージを使用してディレクトリ名を取得することができます。
以下のようにfilepath.Dir関数を使用することで、実行中のバイナリファイルのディレクトリパスを取得することができます。