Avatar ·

Wie erhalte ich den Pfad zum Verzeichnis der aktuellen ausführbaren Datei in Go?

Hallo Kollegen! Ich bin neu in Go und habe ein Problem, das einfach erscheint, sich aber nicht lösen lässt. Ich muss zur Laufzeit das Verzeichnis ermitteln, in dem sich die aktuell ausgeführte Datei (kompilierte .exe oder Binary) befindet. Das Problem ist, dass ich ein Tool für die Arbeit mit Konfigurationsdateien schreibe. Die Projektstruktur ist so: Neben dem Binary liegt ein Ordner configs, darin config.yaml. Ich möchte, dass das Programm diese Datei liest, ohne hartcodierte Pfade zu verwenden, da der Benutzer das Binary an einen beliebigen Ort kopieren kann. Hier ist mein aktueller Code, der nicht funktioniert: ```go package main import ( "fmt" "os" "path/filepath" ) func main() { // Versuche verschiedene Varianten exe, _ := os.Executable() fmt.Println("Executable path:", exe) dir := filepath.Dir(exe) fmt.Println("Directory:", dir) configPath := filepath.Join(dir, "configs", "config.yaml") fmt.Println("Config path:", configPath) } ``` P