Namespaces
Variants

std::filesystem::path:: make_preferred

From cppreference.net
path & make_preferred ( ) ;
(depuis C++17)

Convertit tous les séparateurs de répertoire dans la vue au format générique du chemin en le séparateur de répertoire préféré.

Par exemple, sur Windows, où \ est le séparateur privilégié, le chemin foo / bar sera converti en foo\bar .

Table des matières

Paramètres

(aucun)

Valeur de retour

* this

Exceptions

Peut lever des exceptions définies par l'implémentation.

Exemple

Windows peut utiliser / comme séparateur, mais préfère \ , donc make_preferred convertit les barres obliques en barres obliques inverses. D'autre part, POSIX n'utilise pas \ comme séparateur, car les barres obliques inverses sont des caractères valides pour les noms de fichiers — le chemin Windows sur POSIX fait en réalité référence à un fichier avec le nom "a \\ b \\ c" . Pour cette raison, les "séparateurs" ne sont pas convertis.

#include <filesystem>
#include <iostream>
int main()
{
    std::filesystem::path
        windows_path("a\\b\\c"),
        posix_path("a/b/c");
    std::cout
        << "Windows path: "
        << windows_path << " -> "
        << windows_path.make_preferred() << '\n'
        << "POSIX path: "
        << posix_path << " -> "
        << posix_path.make_preferred() << '\n';
}

Sortie :

// on Windows
Windows path: "a\\b\\c" -> "a\\b\\c"
POSIX path: "a/b/c" -> "a\\b\\c"
// on POSIX
Windows path: "a\\b\\c" -> "a\\b\\c"
POSIX path: "a/b/c" -> "a/b/c"

Voir aussi

constexpr value_type preferred_separator
[static]
séparateur de répertoire alternatif qui peut être utilisé en plus du séparateur portable / . Sous Windows, il s'agit du caractère barre oblique inverse \ . Sous POSIX, il s'agit de la même barre oblique / que le séparateur portable
(constante de membre public static)