Espacios de nombres
Variantes

std::filesystem::path::make_preferred

De cppreference.com
 
 
 
 
<tbody> </tbody>
path& make_preferred();
(desde C++17)

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

Por ejemplo, en Windows, donde \ es el separador de directorio preferido, la ruta foo/bar se convertirá a foo\bar.

Parámetros

(Ninguno)

Valor de retorno

*this

Excepciones

Puede lanzar excepciones definidas por la implementación.

Ejemplo

Windows puede usar / como separador, pero prefiere \, así que make_preferred convierte las barras inclinadas a barras invertidas. Por otra parte, POSIX no usa \ como separador porque las barras invertidas son caracteres de nombre de archivo válidos—la ruta de acceso de Windows en POSIX actualmente se refiere a un archivo con nombre "a\\b\\c". Por esta razón, los "separadores" no se convierten.

#include <filesystem>
#include <iostream>
#include <iomanip>

int main()
{
  std::filesystem::path windows_path{"a\\b\\c"};
  std::filesystem::path posix_path{"a/b/c"};
  std::cout << "Ruta de acceso de Windows: " 
            << std::quoted(windows_path.string()) << " -> " 
            << std::quoted(windows_path.make_preferred().string()) << '\n'
            << "Ruta de acceso de POSIX: "
            << std::quoted(posix_path.string()) << " -> " 
            << std::quoted(posix_path.make_preferred().string()) << '\n';
}

Salida:

# en Windows
Ruta de acceso de Windows: "a\\b\\c" -> "a\\b\\c"
Ruta de acceso de POSIX: "a/b/c" -> "a\\b\\c"
# en POSIX
Ruta de acceso de Windows: "a\\b\\c" -> "a\\b\\c"
Ruta de acceso de POSIX: "a/b/c" -> "a/b/c"

Véase también

constexpr value_type preferred_separator
[estático]
El separador de directorio alternativo que se puede utilizar además del portátil /. En Windows, este es el carácter de barra invertida \. En POSIX, esta es la misma barra inclinada / que el separador portátil.
(constante miembro pública estática) [editar]