update parse gopath golang create path go

path - parse - uninstall go



Encuentra la ruta al ejecutable (3)

Compilo un programa con Go para varias plataformas y lo ejecuto llamando a una ruta relativa o simplemente por su nombre (si está en la variable PATH).

¿Es posible averiguar dónde está el ejecutable?

Diga, mi programa se llama " foo ( .exe )". Puedo ejecutar ./foo , foo (si está en la RUTA), ../../subdir/subdir/foo .

He intentado usar os.Args[0] y creo que debería verificar si el nombre del programa contiene algo diferente además de "foo". En caso afirmativo, utilice filepath.Abs , si no, use (no puedo encontrar el nombre de la función, hay una función que mira a través de PATH para verificar dónde está el programa).



Puede usar os.Executable para obtener una ruta ejecutable en la versión Go 1.8 o superior.

import ( "os" "path" "log" ) func main() { ex, err := os.Executable() if err != nil { log.Fatal(err) } dir := path.Dir(ex) log.Print(dir) }


Usa el paquete osext .

Proporciona la función Executable() que devuelve una ruta absoluta al ejecutable del programa actual. Es portátil entre sistemas.

Documentación en línea

package main import ( "github.com/kardianos/osext" "fmt" ) func main() { filename, _ := osext.Executable() fmt.Println(filename) }