J'utilise io/ioutil
pour lire un petit fichier texte :
fileBytes, err := ioutil.ReadFile("/absolute/path/to/file.txt")
Cela fonctionne bien, mais ce n'est pas vraiment portable. Dans mon cas, les fichiers que je veux ouvrir se trouvent dans mon GOPATH, par exemple :
/Users/matt/Dev/go/src/github.com/mholt/mypackage/data/file.txt
Depuis l'entrée en vigueur de la data
se trouve à côté du code source, j'aimerais pouvoir spécifier le chemin relatif :
data/file.txt
Mais j'obtiens alors cette erreur :
panic : open data/file.txt : no such file or directory
Comment puis-je ouvrir des fichiers en utilisant leur chemin relatif, surtout s'ils se trouvent à côté de mon code Go ?
( Notez que ma question porte spécifiquement sur l'ouverture de fichiers relatifs au GOPATH. Ouvrir des fichiers en utilisant n'importe quel chemin relatif en Go est aussi simple que d'indiquer le chemin relatif au lieu du chemin absolu ; les fichiers sont ouverts relativement au répertoire de travail du binaire compilé. Dans mon cas, je veux ouvrir les fichiers relativement à l'endroit où le binaire a été compilé. Rétrospectivement, il s'agit d'une mauvaise décision de conception).