Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gebe ich den Windows-Dateipfad in der Go-Anwendung an?

Wie gebe ich den Windows-Dateipfad in der Go-Anwendung an?

PHPz
PHPznach vorne
2024-02-13 10:33:09478Durchsuche

如何在 Go 应用程序中指定 Windows 文件路径?

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.

Frageninhalt

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.

Workaround

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen