std::experimental::filesystem::path:: append, std::experimental::filesystem::path:: operator/=
From cppreference.net
<
cpp
|
experimental
|
fs
|
path
|
path
&
operator
/
=
(
const
path
&
p
)
;
|
(1) | (文件系统 TS) |
|
template
<
class
Source
>
path & operator / = ( const Source & source ) ; |
(2) | (文件系统 TS) |
|
template
<
class
Source
>
path & append ( const Source & source ) ; |
(3) | (文件系统 TS) |
|
template
<
class
InputIt
>
path & append ( InputIt first, InputIt last ) ; |
(4) | (文件系统 TS) |
1)
首先,将首选目录分隔符附加到
this
,除非满足以下任一条件:
* 分隔符将是冗余的(
*
this
已以分隔符结尾)。
*
*
this
为空,或者添加它会以某种其他方式将相对路径转换为绝对路径。
*
p
是一个空路径。
*
p.
native
(
)
以目录分隔符开头。
随后,将
p.
native
(
)
追加到由
*
this
维护的路径名中。
4)
与
(1)
相同,但接受任何指定多字符字符串的迭代器对。
目录 |
参数
| p | - | 要追加的路径名 |
| source | - | std:: basic_string 、以空字符结尾的多字符字符串,或指向以空字符结尾的多字符序列的输入迭代器(表示可移植格式或原生格式的路径名) |
| first, last | - | 指定表示路径名的多字符序列的 LegacyInputIterator s 迭代器对 |
| 类型要求 | ||
-
InputIt
必须满足
LegacyInputIterator
的要求
|
||
|
-
|
||
返回值
* this
异常
若底层操作系统API出错可能抛出 filesystem_error ,若内存分配失败则可能抛出 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"
参见
|
在不引入目录分隔符的情况下连接两个路径
(公开成员函数) |
|
|
使用目录分隔符连接两个路径
(函数) |