Bonjour, tout est dans le titre.
Je souhaiterais, à partir d'un path, obtenir le path vers le répertoire parent.
Comment peut-on faire ça?
Merci:D
Version imprimable
Bonjour, tout est dans le titre.
Je souhaiterais, à partir d'un path, obtenir le path vers le répertoire parent.
Comment peut-on faire ça?
Merci:D
Bonjour,
ben si t as le path absolu de ton fichier dans ton path t as bien le repertoire contenant ton fichier ?
J ai bon la :aie:
Exact Exact, mais si j'ai pas envie de parser le path?
Ou alors, comment le parser efficacement?
et en utilisant le rep parent ".." ?
par contre sur windows je sais pas si ca tourne ?
Le but du jeu est bien justement de le faire tourner sous windows :lol:
Boost::Spirit de mémoire.
En supposant que tu es sous un système linux (a adpater si tu est sous win):
Edit: boost::spirit c'est pour parser des langages, c'est dans la même veine que lex et yacc. Rien à voir avec ce qui est demandé. Et meme, sortir un parseur pour ca, c'est tuer une mouche avec une bombe A.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <iostream> #include <string> int main() { std::string s("/usr/include/c++/iostream"); s.erase(s.find_last_of("/")/* +1 (1)*/,s.size()-1); std::cout<<s<<std::endl; return 0; //(1) : dépend de si tu veux garder le dernier / ou pas. }
Merci, ça a l'air d'être ce que je cherche, histoire de faire mon relou, je vais abuser un peu :
je fais comment si en entrée et en sortie j'ai un LPTSTR ?
Euh faut pas pousser. Je veux bien admettre que find_last_of n'est pas une fonction qu'on utilise tout les jours, mais google existe merde !
LPTSTR <-> std::string, c'est compliqué à taper dans google ?
(Message sec, mais c'est pour ton bien :aie:)
Tu as entièrement raison, c'est pour mon bien :)
J'ai l'habitude de coder sous linux alors là pour une fois je suis plutot pommé avec les LPTSTR et compagnie...
Quelque chose comme ça il me semble oui
LPTSTR c'est ou bien un char* ou un wchar_t* selon que UNICODE est défini ou non...
Il il ya une fonction Win32 qui permet de séparer le path en file-name et chemin....
En fait, je pensais à boost.filesystem à la base, et à sa classe path
A la sortie, dirs contient:Code:
1
2
3 path my_path("ab/cd/ef/gh/file.txt"); std::vector<string> dirs; std::copy(my_path.begin(), my_path.end(), std::back_inserter(dirs));
"ab"
"cb"
"ef"
"gh"
"file.txt"
La classe path contient bien d'autre goodies.