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.
Ejecuta este código
#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) |