Maison  >  Article  >  développement back-end  >  Comment accéder aux fichiers dans le même répertoire que votre fichier source Go ?

Comment accéder aux fichiers dans le même répertoire que votre fichier source Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 08:56:02105parcourir

How Do You Access Files in the Same Directory as Your Go Source File?

Accès aux fichiers dans le répertoire de fichiers source dans Go

Lors de l'écriture de programmes Go, l'accès aux fichiers situés dans le même répertoire que le fichier source peut être un défi. Contrairement aux langages interprétés, où le fichier source coexiste avec le binaire en cours d'exécution, les programmes Go compilés ne nécessitent pas que le fichier source soit présent lors de l'exécution.

Recherche du chemin de fichier par défaut

Par défaut, des fonctions comme os.Open() recherchent des fichiers dans le répertoire de travail actuel (PWD) défini par la variable d'environnement suivante :

$PWD: /dir

Si vous essayez d'ouvrir un fichier nommé "myfile. txt" en utilisant :

<code class="go">os.Open("myfile.txt")</code>

Go recherchera "myfile.txt" dans le répertoire de travail actuel "/dir".

Absence de relocalisation de répertoire intégrée

Go n'offre pas de mécanisme intégré pour localiser automatiquement les fichiers dans le même répertoire que le fichier source. L'équivalent du FILE de Ruby n'existe pas dans Go.

Cependant, la fonction runtime.Caller permet d'accéder au nom du fichier au moment de la compilation :

<code class="go">filepath := runtime.Caller(0)</code>

Approches alternatives

Au lieu de vous fier à la découverte automatique du chemin du fichier, envisagez des approches alternatives :

  • Transmettez explicitement le chemin du fichier : Spécifiez le chemin absolu chemin d'accès au fichier ou transmettez-le comme argument.
  • Utilisez une fonction personnalisée : Créez une fonction personnalisée qui prend le chemin du fichier source et construit le chemin du fichier correspondant dans le répertoire souhaité.
  • Redéfinissez la constante « __FILE__ » : Bien que Go ne définisse pas nativement « __FILE__ », vous pouvez définir une constante pour pointer vers l'emplacement du fichier source :
<code class="go">import "path/filepath"

const __FILE__ = filepath.Join(filepath.Dir(runtime.Caller(0)), "src.go")</code>

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:
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