Namespaces
Variants

std::filesystem::path:: make_preferred

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

Convierte todos los separadores de directorio en la vista de formato genérico de la ruta al separador de directorio preferido.

Por ejemplo, en Windows, donde \ es el separador preferido, la ruta foo / bar será convertida a foo\bar .

Contenidos

Parámetros

(ninguno)

Valor de retorno

* this

Excepciones

Puede lanzar excepciones definidas por la implementación.

Ejemplo

Windows puede usar / como separador, pero prefiere \ , por lo que make_preferred convierte las barras diagonales en barras invertidas. Por otro lado, POSIX no usa \ como separador, porque las barras invertidas son caracteres válidos en nombres de archivo — la ruta de Windows en POSIX realmente se refiere a un archivo con el nombre "a \\ b \\ c" . Por esta razón los "separadores" no se convierten.

#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';
}

Salida:

// 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"

Véase también

constexpr value_type preferred_separator
[static]
separador de directorio alternativo que puede usarse además del / portable. En Windows, este es el carácter de barra invertida \ . En POSIX, este es la misma barra diagonal / que el separador portable
(constante de miembro público estático)