Maison > développement back-end > Golang > le corps du texte

Comment spécifier le chemin du fichier Windows dans l'application Go ?

PHPz
Libérer: 2024-02-13 10:33:09
avant
478 Les gens l'ont consulté

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

Spécifier les chemins de fichiers Windows dans les applications en langage Go n'est pas compliqué. Tout d’abord, nous devons utiliser la fonction Join dans le package filepath pour séparer les chemins. Ensuite, nous pouvons utiliser la fonction Chdir dans le package os pour basculer le répertoire de travail actuel vers le chemin spécifié. Enfin, nous pouvons utiliser la fonction Stat du package os pour vérifier si le chemin existe. Pour résumer, la spécification des chemins de fichiers Windows ne nécessite que quelques étapes simples. Si vous souhaitez en savoir plus sur la façon de spécifier les chemins de fichiers Windows dans les applications Go, continuez à lire cet article et nous vous fournirons des réponses détaillées.

Contenu de la question

J'ai essayé de spécifier l'emplacement Windows du fichier .kube/config pour une application client go sans spécifier le chemin absolu.

kubeconfig := flag.string("kubeconfig", "%userprofile%/.kube/config", "location to the kube config file")
Copier après la connexion

Sortie :

panic: runtime error: invalid memory address or nil pointer dereference 
Copier après la connexion

Lorsque j'utilise echo %userprofile%时,输出是c:users<username>,所以我认为这是因为/ dans cmd, l'utilisation est différente en termes de code et de chemin. J'ai essayé de spécifier le chemin en utilisant 而不是 / mais cela a donné une erreur de syntaxe.

Quelqu'un peut-il me suggérer une solution pour utiliser les variables d'environnement Windows pour spécifier les chemins dans les applications Go ? Merci d'avance.

Solution

flag.string 的输出本身不会扩展环境变量,但您可以使用 os.expandenv 来做到这一点。但是 os.expandenv 要求您对环境变量使用 unix 表示法,即 $userprofile${userprofile}。您可以使用 filepath.clean Obtenez un chemin de fichier propre pour notre système d'exploitation spécifique (Windows dans votre cas).

Exemple :

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)))
Copier après la connexion

Cela affichera ce qui suit sous Windows :

$USERPROFILE/.kube/config
C:\Users\username/.kube/config
C:\Users\username\.kube\config
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!