Maison  >  Article  >  développement back-end  >  Comment spécifier le chemin du fichier Windows dans l’application Go ?

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

PHPz
PHPzavant
2024-02-13 10:33:09482parcourir

如何在 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")

Sortie :

panic: runtime error: invalid memory address or nil pointer dereference 

Lorsque j'utilise echo %userprofile%时,输出是c:usersd6025a37ea8687b5422f951f7288bdc5,所以我认为这是因为/ 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)))

Cela affichera ce qui suit sous Windows :

$USERPROFILE/.kube/config
C:\Users\username/.kube/config
C:\Users\username\.kube\config

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer