Je travaille actuellement sur obtenir mon programme pour exécuter un programme (tel que le point d'alimentation) et puis à côté le chemin d'accès au fichier que je veux ouvrir. Mon programme devient le chemin du fichier à l'aide:exécuter des noms de fichiers avec des espaces dans cmd pmt Passé du programme C++
dirIter2->path()
je reçois les 2 chemins du programme et le fichier, les fusionner en une chaîne et les passer dans les éléments suivants:
system(PathTotal.c_str())
cela fonctionne très bien mais mon seul problème est que lorsque le nom du fichier a un espace dans son nom de commande, il ne peut pas trouver le fichier (car il pense que le nom du fichier se termine quand il arrive au premier espace. avec des guillemets mais c'est le nom du fichier acutal qui doit être enveloppé.(p.ex. J'ai essayé "C: \ users \ bob \ john est cool" mais il doit être comme ceci: C: \ users \ bob \ "john is cool")
Est-ce que quelqu'un a des suggestions sur la façon dont je pourrais réparer ce? Je pensais à obtenir le chemin vers le dossier où le fichier et ensuite obtenir le nom du fichier. Je voudrais envelopper le nom de fichier avec des guillemets puis l'ajouter au chemin du dossier. J'ai essayé d'utiliser le -> path() comme ci-dessus mais le seul problème est que cela ne va qu'en dehors du répertoire du dossier?
Y at-il une commande boost qui pourrait obtenir le chemin d'accès au fichier sans avoir le fichier?
Je ne suis pas engagé à cette idée si quelqu'un a des meilleures suggestions
Merci
hypothèse non valide - il fonctionne bien citer la chose. Pas besoin d'aller à l'extrême pour citer la plus petite partie possible. Cheers & hth., –
@Alf - J'ai essayé de citer la chaîne entière - cela ne fonctionne pas pour une raison quelconque, j'ai eu le même problème avec le chemin du programme jusqu'à ce que je mets juste des citations où il y avait des espaces. Merci pour le commentaire – Johnston
@Jonston: Je soupçonne que vous avez fait quelque chose de mal. Comme, en citant "la chaîne entière", y compris les arguments. Ou, ne pas comprendre sur '\" 'en C++ ou quelque chose comme ça.Essayez de reproduire le problème dans un programme absolument minimal mais complet.Entrez le code si le processus de création de ce programme ne résout pas le problème pour vous. cela résout le problème, s'il vous plaît dire. :-) –