Extraire path d'un repertoire à partir d'un chemin de fichier
Bonjour,
Ma question est simple, tout est dans le titre; cepandant malgré pas mal de recherche, je ne trouve pas la réponse que j'attends.
Le problème est le suivant :
J'ai un chemin de fichier, prenons par exemple :
C:\repertoire1\sous_repertoire10\mon_fichier.txt
Quel est le nom de la fonction (ou méthode) permettant de récupérer uniquement le chemin du repertoire; autrement dit :
C:\repertoire1\sous_repertoire10\ ?
Pour information;
je développe une dll sous visual studio 2008.
Merci d'avance.
[RESOLU] en utilisant _splitpath
Pour ceux que cela intéresse, comme l'a indiqué mabu, _splitpath permet de séparer chemin du répertoire et nom du fichier ... et même mieux puisque la fonction renvoie :
- le nom du lecteur
- le chemin du répertoire
- le nom du fichier
- l'extension
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#include <stdlib>
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
char* path_to_split = "C:\\repertoire1\\sous_repertoire\\fichier.txt";
char drive[256];
char dir[266];
char file_name[266];
char file_ext[266];
_splitpath(path_to_split,drive, dir, file_name, file_ext);
cout << "input : " << path_to_split << endl;
cout << "drive : " << drive << endl;
cout << "dir : " << dir << endl;
cout << "file_name : " << file_name << endl;
cout << "file_ext : " << file_ext << endl ;
return 0 ;
} |
Ce code doit afficher le texte suivant :
Code:
1 2 3 4 5 6
|
input : C:\repertoire1\sous_repertoire\fichier.txt
drive : C:
dir : \repertoire1\sous_repertoire\
file_name : fichier
file_ext : .txt |
Pour ceux que cela intéresse, l'opération inverse est également possible; c'est à dire reconstruire un chemin complet à partir des 4 champs : lecteur, répertoire, nom de fichier, extension :
Code:
1 2
|
_makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); |
Ce code génère donc le chemin suivant :
Code:
1 2
|
c:\sample\crt\makepath.c |