std::experimental::filesystem::path:: append, std::experimental::filesystem::path:: operator/=
From cppreference.net
<
cpp
|
experimental
|
fs
|
path
|
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
.
|
||
|
-
|
||
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
Ejecutar este código
#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) |