Golang os.Öffnen No such file or directory Fehler
Ich bin kämpfen, um herauszufinden, ein Problem mit os.Öffnen. Ich bekomme immer ein 'no such file or directory" - Fehler bei der Verwendung von os.Öffnen Sie einen Ordner namens Vorlagen. Also ich habe meinen Ordner MVCApp bin mit pkg-src und Vorlagen in es. Dann habe ich die main in den src-Ordner. Also ich habe diesen code:
basePath := "templates"
templateFolder, err := os.Open(basePath)
if err != nil {
log.Fatal(err)
}
defer templateFolder.Close()
Ich denke es hat etwas zu tun mit dem basePath, dass ich mit dem öffnen, aber ich kann nicht herausfinden, wie muss ich das Vorwort "Vorlagen", um für es zu finden in diesem Verzeichnis. Ich bin sicher, das ist leicht zu beheben, aber es hat mich verblüfft. Jegliche Hilfe würde sehr geschätzt werden.
- Ich bin 99% sicher, dass dies ein "working directory" - problem. Machen Sie einen schnellen Anruf zu Liste der Inhalt des aktuellen Verzeichnisses, um sicherzustellen, dass es an der richtigen Stelle.
- Sie wissen, wie zu machen, dass call-in Gehen? Ich bin noch sehr neu in dieser Sprache.
- Hm, versuchen
os.Getwd()
. Sollte Ihnen das aktuelle Arbeitsverzeichnis. - Okay ja weil ich Angst hatte, "ich bin" in das Hauptverzeichnis innen SRK bei Vorlagen ist eine peer-to-src. Also muss ich wieder aus zwei Ordnern, Zugriff auf Vorlagen wie ich will. Nicht sicher, wie zu tun, dass, obwohl...
- Was ist, wenn Sie
basePath := "../../templates"
? - Ja, ich fand, dass, kurz nachdem ich gepostet. Danke für deine Hilfe, alles wie vorgesehen funktioniert jetzt!!
- Genial! Habe ich geschrieben, als eine Antwort zusammen zu fassen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pro unsere Diskussion in den Kommentaren, es stellte sich heraus, dass das Problem verursacht wurde durch die Anwendung läuft in einem falschen Arbeitsverzeichnis.
Dem Update wurde der Pfad geändert werden, wie folgt:
Können Sie auch
os.Chdir
um das Arbeitsverzeichnis zu ändern dauerhaft (für die Dauer des Prozesses), und vermeiden Sie die Verwendung der../..
. Mehr info hier: https://golang.org/pkg/os/#File.Chdir