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)
Сначала добавляет предпочтительный разделитель каталогов к
this
, за исключением случаев, когда выполняется любое из следующих условий:
* разделитель был бы избыточным (
*
this
уже заканчивается разделителем).
*
*
this
пуст, или его добавление превратит относительный путь в абсолютный каким-либо другим способом.
*
p
является пустым путём.
*
p.
native
(
)
начинается с разделителя директории.
Затем добавляет
p.
native
(
)
к пути, поддерживаемому
*
this
.
2,3)
То же, что и
(1)
, но принимает любую
std::
basic_string
, нуль-терминированную многобайтовую строку или входной итератор, указывающий на нуль-терминированную многобайтовую последовательность.
4)
То же, что и
(1)
, но принимает любую пару итераторов, обозначающую многобайтовую строку.
Содержание |
Параметры
| p | - | путь для добавления |
| source | - | std:: basic_string , строка с нулевым завершителем, или итератор ввода, указывающий на последовательность многобайтовых символов с нулевым завершителем, которая представляет имя пути (в портируемом или нативном формате) |
| first, last | - | пара LegacyInputIterator s , которая задает последовательность многобайтовых символов, представляющую имя пути |
| Требования к типам | ||
-
InputIt
должен удовлетворять требованиям
LegacyInputIterator
.
|
||
|
-
|
||
Возвращаемое значение
* this
Исключения
Может выбрасывать filesystem_error при ошибках API базовой ОС или std:: bad_alloc при неудачном выделении памяти.
Пример
Запустить этот код
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "C:"; p1 /= "Users"; // не вставляет разделитель // "C:Users" является относительным путем в Windows // добавление разделителя каталогов превратит его в абсолютный путь std::cout << "\"C:\" / \"Users\" == " << p1 << '\n'; p1 /= "batman"; // вставляет fs::path::preferred_separator, '\' в Windows std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p1 << '\n'; }
Возможный вывод:
"C:" / "Users" == "C:Users" "C:" / "Users" / "batman" == "C:Users\batman"
Смотрите также
|
объединяет два пути без добавления разделителя директорий
(public member function) |
|
|
объединяет два пути с разделителем директорий
(function) |