2010-10-21 3 views
3

Existe-t-il une fonction qui renvoie le nom de chemin qualifié complet pour tout fichier entré?Comment obtenir le nom de chemin qualifié complet en C++

Je pense à quelque chose comme:

LPCSTR path = "foo.bar" 
LPCSTR fullPath = FullyQualifiedPath(path); 
//fullPath now equals C:\path\to\foo.bar 

Merci

+0

Ceci est une question dépendante de la plate-forme. Il semble que vous utilisez Win32? – EboMike

+0

Vous avez raison EboMike, merci –

+0

Pour aider à de futures recherches: ** Le nom de chemin qualifié complet ** est souvent appelé le ** chemin absolu **. – DavidRR

Répondre

4

Dans Win32, appelez la fonction GetFullPathName.

+0

Parfait, merci! –

+2

Notez que sur NTFS, avec les liens durs en particulier, cela renvoie l'un des noms de chemin complet du fichier (s'il en a seulement un, alors cela n'a pas d'importance). Juste une tête. – jrtipton

3

Utiliser boost :: système de fichiers http://www.boost.org/doc/libs/1_44_0/libs/filesystem/v2/doc/index.htm

#include <iostream> 
#include <boost/filesystem.hpp> 

int main() 
{ 
    boost::filesystem::path p = boost::filesystem::complete("foo.bar"); 
    std::cout << p; 
} 
+0

Merci pour la réponse, mais je ne peux pas utiliser de bibliothèques externes. –

Questions connexes