編集: Go 1.8 (2017 年 2 月リリース) の時点で、これを行うための推奨される方法は次のos.Executable
とおりです。
func Executable() (string, error)
Executable は、現在のプロセスを開始した実行可能ファイルのパス名を返します。パスがまだ正しい実行可能ファイルを指しているという保証はありません。シンボリック リンクを使用してプロセスを開始した場合、オペレーティング システムによっては、結果がシンボリック リンクまたはそれが指すパスになる場合があります。安定した結果が必要な場合は、path/filepath.EvalSymlinks が役立つ場合があります。
実行可能ファイルのディレクトリだけを取得するには、path/filepath.Dir
.
例:
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
ex, err := os.Executable()
if err != nil {
panic(err)
}
exPath := filepath.Dir(ex)
fmt.Println(exPath)
}
古い答え:
あなたは使用できるはずですos.Getwd
func Getwd() (pwd string, err error)
Getwd は、現在のディレクトリに対応するルート パス名を返します。(シンボリック リンクにより) 複数のパスを介して現在のディレクトリに到達できる場合、Getwd はそれらのいずれかを返す場合があります。
例えば:
package main
import (
"fmt"
"os"
)
func main() {
pwd, err := os.Getwd()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println(pwd)
}