Bonjour,
Je développe actuellement un soft en C++. A un moment j'ai besoin de lancer un autre executable par ligne de commande. Cet executable a besoin d'un paramètre en entrée de type "chemin de fichier".
voici mon code :
Si le chemin de l'exe et du paramètre ne comportent pas d'espace, ce code fonctionne :
Si le chemin de l'exe contient des espace mais que le chemin du paramètre ne contient pas d'espace, le code suivant fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 const char guillemet = 0x22; const char espace = 0x20; std::string cheminExe = _config->getDossierRessources(); std::string parametres = _config->getCheminPrincipalSauvegarde() ; std::string commande = cheminExe + espace + parametres; int resultat = system(commande.c_str());
Le problème que j'ai est la gestion du cas où les deux chemins contiennent des espaces. J'ai essayé le code suivant : mais il ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 const char guillemet = 0x22; const char espace = 0x20; std::string cheminExe = _config->getDossierRessources(); std::string parametres = _config->getCheminPrincipalSauvegarde() ; std::string commande = guillemet + cheminExe + guillemet + espace + parametres; int resultat = system(commande.c_str());
Est ce que cela peut être aussi lié au fait d'utiliser des "slash" ou"backslash" dans les chemins des fichiers ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 const char guillemet = 0x22; const char espace = 0x20; std::string cheminExe = _config->getDossierRessources(); std::string parametres = _config->getCheminPrincipalSauvegarde() ; std::string commande = guillemet + cheminExe + guillemet + espace + guillemet + parametres + guillemet ; int resultat = system(commande.c_str());
Voila, est ce que qqn aurait une idée de la méthode à adopter ?
Merci d'avance
Partager