Heim >Backend-Entwicklung >Golang >Wie gebe ich den Windows-Dateipfad in der Go-Anwendung an?
Das Angeben von Windows-Dateipfaden in Go-Sprachanwendungen ist nicht kompliziert. Zuerst müssen wir die Join-Funktion im Dateipfadpaket verwenden, um Pfade zu verbinden. Anschließend können wir die Chdir-Funktion im Betriebssystempaket verwenden, um das aktuelle Arbeitsverzeichnis auf den angegebenen Pfad umzustellen. Schließlich können wir die Stat-Funktion im Betriebssystempaket verwenden, um zu überprüfen, ob der Pfad vorhanden ist. Zusammenfassend lässt sich sagen, dass die Angabe von Windows-Dateipfaden nur ein paar einfache Schritte erfordert. Wenn Sie mehr darüber erfahren möchten, wie Sie Windows-Dateipfade in Go-Anwendungen angeben, lesen Sie diesen Artikel weiter und wir werden Ihnen detaillierte Antworten geben.
Ich habe versucht, den Windows-Speicherort der .kube/config-Datei für meine Go-Client-Anwendung anzugeben, ohne den absoluten Pfad anzugeben.
kubeconfig := flag.string("kubeconfig", "%userprofile%/.kube/config", "location to the kube config file")
Ausgabe:
panic: runtime error: invalid memory address or nil pointer dereference
Wenn ich echo %userprofile%
时,输出是c:usersd6025a37ea8687b5422f951f7288bdc5
,所以我认为这是因为和
/
in cmd verwende, unterscheidet sich die Verwendung in Code und Pfad.
Ich habe versucht, den Pfad mit 而不是
/
anzugeben, aber es gab einen Syntaxfehler.
Kann mir jemand eine Lösung für die Verwendung von Windows-Umgebungsvariablen zur Angabe von Pfaden in Go-Anwendungen vorschlagen? Dank im Voraus.
flag.string
的输出本身不会扩展环境变量,但您可以使用 os.expandenv
来做到这一点。但是 os.expandenv
要求您对环境变量使用 unix 表示法,即 $userprofile
或 ${userprofile}
。您可以使用 filepath.clean
Holen Sie sich einen sauberen Dateipfad für unser spezifisches Betriebssystem (in Ihrem Fall Windows).
Beispiel:
kubeconfig := flag.string("kubeconfig", "$userprofile/.kube/config", "location to the kube config file") fmt.println(*kubeconfig) fmt.println(os.expandenv(*kubeconfig)) fmt.println(filepath.clean(os.expandenv(*kubeconfig)))
Dies wird unter Windows Folgendes ausgeben:
$USERPROFILE/.kube/config C:\Users\username/.kube/config C:\Users\username\.kube\config
Das obige ist der detaillierte Inhalt vonWie gebe ich den Windows-Dateipfad in der Go-Anwendung an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!