Namespaces
Variants

std::filesystem:: absolute

From cppreference.net
Défini dans l'en-tête <filesystem>
path absolute ( const std:: filesystem :: path & p ) ;
(1) (depuis C++17)
path absolute ( const std:: filesystem :: path & p, std:: error_code & ec ) ;
(2) (depuis C++17)

Retourne un chemin référençant le même emplacement du système de fichiers que p , pour lequel filesystem::path::is_absolute() est true .

2) Cette surcharge non-lancante retourne un chemin construit par défaut si une erreur survient.

Table des matières

Paramètres

p - chemin à convertir en forme absolue
ec - paramètre de sortie pour le rapport d'erreurs dans la surcharge non-lancante

Valeur de retour

Retourne un nom de chemin absolu (bien que pas nécessairement canonique) référençant le même fichier que p .

Exceptions

Toute surcharge non marquée noexcept peut lever std::bad_alloc si l'allocation de mémoire échoue.

1) Lance std::filesystem::filesystem_error en cas d'erreurs de l'API système sous-jacente, construit avec p comme premier argument de chemin et le code d'erreur du système comme argument de code d'erreur.
2) Définit un paramètre std:: error_code & au code d'erreur de l'API du système d'exploitation si un appel d'API système échoue, et exécute ec. clear ( ) si aucune erreur ne survient.

Notes

Il est recommandé que les implémentations ne considèrent pas p comme une erreur s'il n'existe pas.

Pour les systèmes d'exploitation basés sur POSIX, std :: filesystem :: absolute ( p ) est équivalent à std:: filesystem :: current_path ( ) / p sauf lorsque p est le chemin vide.

Pour Windows, std::filesystem::absolute peut être implémenté comme un appel à GetFullPathNameW .

Exemple

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    std::filesystem::path p = "foo.c";
    std::cout << "Current path is " << std::filesystem::current_path() << '\n';
    std::cout << "Absolute path for " << p << " is " << fs::absolute(p) << '\n';
}

Sortie possible :

Current path is "/tmp/1666297965.0051296"
Absolute path for "foo.c" is "/tmp/1666297965.0051296/foo.c"

Voir aussi

compose un chemin canonique
(fonction)
compose un chemin relatif
(fonction)