2 votes

Obtenez le chemin de l'application sans le nom de l'application à la fin de l'application.

J'utilise xcode et je veux obtenir le chemin d'accès où mon application s'exécute sans le nom de l'application à la fin du chemin, mais j'ai essayé :

printf("%s\n", argv[0]);

il me donne le bon chemin où mon application s'exécute mais il se termine par /mon nom d'application, comment puis-je supprimer le nom d'application ?

1voto

Joachim Pileborg Points 121221

Vous pouvez utiliser le dirname fonction.

1voto

Karthik T Points 19418

Utiliser std::string::find_last_of pour trouver la dernière instance du séparateur de chemin ( / si *nix, \ si Windows) et utiliser std::string::substr pour copier tout jusqu'à cet index.

Exemple :

std::string file = argv[0];

std::string path = file.substr(0,file.find_last_of("/"));

Cela devrait faire ce que vous voulez, sauf erreur stupide dans mon code.

1voto

billz Points 28166

Utiliser nom de répertoire

#include <iostream>
#include <libgen.h>

int main(int argc, char* argv[])
{        
    std::string dir = dirname(argv[0]);
    std::cout << dir << std::endl;
}

Exécuter l'application :

  $/data/temp/test

sortie :

  $/data/temp

0voto

davak Points 313

Si vous recherchez un équivalent de bash pwd vous pouvez l'utiliser :

#include <unistd.h>
char *getcwd(char *buf, size_t size);

Notez que si vous avez précédemment appelé chdir(). ceci ne retournera pas le chemin que vous recherchez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X