2017-12-07 4 views
-1

Ich versuche, einfache Leseeinstellungen aus der Konfigurationsdatei zu machen. Beide Dateien - config.json und Settings.go, befinden sich im selben Ordner. Aber ich bekomme immer "The system cannot find the file specified." Was mache ich falsch?Go kann die angegebene Datei nicht finden

func GetDbConnectionString() string { 
    file, err := os.Open("config.json") 
    if err != nil { 
     log.Fatal(err) 
    } 
    decoder := json.NewDecoder(file) 
    settings := Settings{} 
    err1 := decoder.Decode(&settings) 
    if err1 != nil { 
     fmt.Println("error:", err1) 
    } 
    log.Print(&settings) 
    return fmt.Sprintf("%s:%[email protected]/%s", settings.login, settings.password, settings.database) 
} 

enter image description here

+0

Sie erwähnen 'settings.json', aber die Datei im' Open'-Aufruf ist 'config.json'. Fehlt etwas? – Marc

+0

Es spielt keine Rolle, wo die Go-Datei ist. Was zählt, ist das aktuelle Arbeitsverzeichnis, wenn Sie Ihre Anwendung ausführen. – Adrian

+0

@Marc, danke dafür, aber es ist nur Tippfehler. –

Antwort

1

Ihre settings.json ist nicht im selben Verzeichnis wie die main.go. Wenn Sie entweder go run main.go oder go build . && ./app aufrufen, lautet der aktuelle Pfad .../app/, der die Datei settings.json nicht enthält.

Versuchen Sie, Ihre settings.json Datei in das gleiche Verzeichnis wie Ihre App zu kopieren. Der lokale Aufruf funktioniert zwar (wird jedoch trotzdem fehlschlagen, wenn Sie von einem separaten Verzeichnis aus starten).

Verwandte Themen