L'ouverture d'un fichier dans le répertoire courant
Je suis en train de charger des fichiers, et déjà je l'aide a été codé en dur les emplacements de fichiers (comme "c:\location\file.txt") mais maintenant que quelques amis sont aussi à l'aide du fichier, j'aimerais leur permettent de mettre de l'exécutable partout où ils le souhaitent.
mon code ressemble à ceci:
ifstream myfile;
myfile.open("c:\\client\\settings.cfg");
Je suis en train de le modifier de sorte que l'utilisateur met son exécutable dans n'importe quel dossier ils veulent, et puis ils créent un dossier et mettre leurs paramètres, les fichiers et le fichier exe charge qu'avec leurs paramètres.
ifstream myfile;
myfile.open("\\settings\\settings.cfg");
J'ai des erreur de base de la manipulation en place, et maintenant le programme toujours des erreurs en disant qu'il ne peut pas trouver le fichier.
La structure du fichier ressemble à ceci:
[ART]
asset.png
[SETTINGS]
settings.cfg
client.exe
Cela semble comme une chose très simple à faire, mais je ne peux pas trouver un moyen de le faire. Chaque exemple et tutoriel sur la lecture et l'écriture de fichiers ne traite qu'avec des fichiers dans le répertoire de l'exécutable, ou codé en dur dans c:\folder...
Quelqu'un pourrait-il m'indiquer comment je le faire?
Vous devez vous connecter pour publier un commentaire.
Le chemin de recherche de la plupart des systèmes commence avec le répertoire de travail courant, puis à une
PATH
variable d'environnement. Donc, tout ce que vous devez faire est de spécifier le fichier/dossier sans le chemin d'accès absolu marquages et il va utiliser le chemin relatif au répertoire de travail:Chemins commençant par
\
sont toujours relatifs à la racine du lecteur répertoire. Si le disque actuel estC:
, puis\settings\settings.cfg
signifieC:\settings\settings.cfg
.Notez que vous pouvez utiliser
/
afin d'éviter de s'échapper à tout. De sorte que vous pouvez utiliser:settings/settings.cfg
. Ce sera par rapport à l'utilisateur du répertoire courant. Notez cependant, que cela ne correspond pas nécessairement au répertoire où le fichier exécutable se trouve. Si vous avez besoin du répertoire de l'exécutable, alors vous devez utiliser la fonction Windows API pour l'obtenir:Maintenant si vous voulez ouvrir
settings/settings.cfg
relatif au répertoire de l'exécutable, de créer un chemin qui commence parpath
et ajouter/settings/settings.cfg
à elle.\settings\settings.cfg
il va toujours à mettre et lire le fichier dans C:/settings/settings.cfg même si ils ont "installé" à c:\game ou c:\client.