Namespaces
Variants

std::experimental::filesystem::path:: append, std::experimental::filesystem::path:: operator/=

From cppreference.net
path & operator / = ( const path & p ) ;
(1) (filesystem TS)
template < class Source >
path & operator / = ( const Source & source ) ;
(2) (filesystem TS)
template < class Source >
path & append ( const Source & source ) ;
(3) (filesystem TS)
template < class InputIt >
path & append ( InputIt first, InputIt last ) ;
(4) (filesystem TS)
1) Primero, añade el separador de directorio preferido a this , excepto si alguna de las siguientes condiciones es verdadera:
* el separador sería redundante ( * this ya termina con un separador).
* * this está vacío, o agregarlo convertiría una ruta relativa en una ruta absoluta de alguna otra manera.
* p es una ruta vacía.
* p. native ( ) comienza con un separador de directorio.
Luego, añade p. native ( ) al nombre de ruta mantenido por * this .
2,3) Igual que (1) , pero acepta cualquier std:: basic_string , cadena multibyte terminada en nulo, o un iterador de entrada que apunta a una secuencia multibyte terminada en nulo.
4) Igual que (1) , pero acepta cualquier par de iteradores que designe una cadena multibyte.

Contenidos

Parámetros

p - nombre de ruta a añadir
source - std:: basic_string , cadena multibyte terminada en nulo, o un iterador de entrada que apunta a una secuencia multibyte terminada en nulo, que representa un nombre de ruta (ya sea en formato portable o nativo)
first, last - par de LegacyInputIterator s que especifican una secuencia multibyte que representa un nombre de ruta
Requisitos de tipo
-
InputIt debe cumplir con los requisitos de LegacyInputIterator .
-
El tipo de valor de InputIt debe ser uno de los tipos de caracteres codificados ( char , wchar_t , char16_t y char32_t ).

Valor de retorno

* this

Excepciones

Puede lanzar filesystem_error en errores de API del sistema operativo subyacente o std:: bad_alloc si falla la asignación de memoria.

Ejemplo

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::path p1 = "C:";
    p1 /= "Users"; // no inserta un separador
                   // "C:Users" es una ruta relativa en Windows
                   // agregar un separador de directorio la convertiría en una ruta absoluta
    std::cout << "\"C:\" / \"Users\" == " << p1 << '\n';
    p1 /= "batman"; // inserta fs::path::preferred_separator, '\' en Windows
    std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p1 << '\n';
}

Salida posible:

"C:" / "Users" == "C:Users"
"C:" / "Users" / "batman" == "C:Users\batman"

Véase también

concatena dos rutas sin introducir un separador de directorio
(función miembro pública)
concatena dos rutas con un separador de directorio
(función)