2017-10-10 6 views
-4

Je crée un jeu qui charge ses données à partir de fichiers externes (fichiers .txt). Lorsque je déclare et définit *fp à la fonction fopen(), en lui donnant le répertoire du fichier, cela fonctionne bien, bien sûr. Mais voici le problème: Quand je veux envoyer mon programme à un autre ordinateur ou répertoire, le répertoire change, et donc le jeu ne peut pas charger ses données à partir des fichiers. J'ai besoin d'un moyen pour que le programme recherche le nom de tous les fichiers et les ouvre n'importe où le dossier du programme est.C - Comment créer un programme qui trouve les noms des fichiers auxquels il a accès?

+1

La solution la plus simple pour moi est de distribuer simplement les fichiers nécessaires avec votre exécutable. Zip/tar up le répertoire de niveau supérieur avec tous les fichiers de support dans cette hiérarchie, ou bien le script user/install définit un type de variable d'environnement qui pointe vers les fichiers. Aucun programme ne va chercher dans le système de fichiers les fichiers dont ils ont besoin. Ils savent où ils se trouvent. – yano

+2

La norme C99 ne connaît pas les répertoires. Mais POSIX fait. Votre question est spécifique au système d'exploitation. Vous pourriez vouloir [readdir (3)] (http://man7.org/linux/man-pages/man3/readdir.3.html), [nftw (3)] (http://man7.org/linux/ man-pages/man3/nftw.3.html), [stat (2)] (http://man7.org/linux/man-pages/man2/stat.2.html) –

+2

Ce que vous décrivez a besoin de savoir les normes d'installation du logiciel sur le système d'exploitation cible. Cela varie beaucoup d'un OS à l'autre. –

Répondre