Comment puis-je obtenir le chemin d'accès complet pour un nom de fichier en argument de ligne de commande?
J'ai trouvé beaucoup de bibliothèques pour aider avec l'analyse des arguments de ligne de commande, mais aucune d'entre elles semblent pour faire face à la manipulation des noms de fichiers. Si je reçois quelque chose comme "../foo" sur la ligne de commande, comment puis-je déterminer le chemin d'accès complet au fichier?
- Pourquoi pensez-vous que vous avez besoin du chemin complet vers le fichier? Appels fonctionnent très bien avec des chemins relatifs.
- Je crois que la commande " pwd " vous donne votre chemin actuel/emplacement. Vous devriez être en mesure de comprendre le reste... mais Andrew (commentaire ci-dessus) est correct.
- Mon utilitaire génère des fichiers texte, donc j'ai besoin du chemin complet. Construction de chemins d'accès des sons comme une douleur, cela doit avoir été résolu 1000 fois déjà.
- passer l'utilitaire le chemin d'accès complet. Le problème est résolu.
Vous devez vous connecter pour publier un commentaire.
POSIX a
realpath()
.DESCRIPTION
Le la fonction realpath() fonction dérive, à partir du chemin d'accès indiqué par nom de fichier, un chemin absolu, que le nom même du fichier, dont la résolution n'implique pas de ".", "..", ou les liens symboliques. L'généré chemin est stocké, jusqu'à un maximum de {PATH_MAX} octets dans le tampon pointé par resolvedname.
Vous pouvez utiliser
boost::filesystem
pour obtenir leabsolute path
d'un fichier, à partir de sonrelative path
:Coup de pouce.Système de fichiers
Dans les scripts shell, la commande "readlink -f" a la fonctionnalité de la fonction realpath().