std::experimental::filesystem::path::append, std::experimental::filesystem::path::operator/=
来自cppreference.com
| |
(1) | (文件系统 TS) |
| |
(2) | (文件系统 TS) |
| |
(3) | (文件系统 TS) |
| |
(4) | (文件系统 TS) |
1) 首先,向
this 追加首选目录分隔符,除非以下任何条件为真: * 分隔符是多余的(
*this 已经以分隔符结尾)。 *
*this 为空,或添加它会以某种其他方式将其从相对路径变为绝对路径。 *
p 为空路径。 *
p.native() 以目录分隔符开始。 然后,向
*this 维护的路径名追加 p.native()。2,3) 与 (1) 相同,但接受任何
std::basic_string,空终止多字符字符串,或指向空终止多字符序列的输入迭代器。4) 与 (1) 相同,但接受任何代表多字符字符串的迭代器对。
参数
| p | - | 要追加的路径名 |
| source | - | std::basic_string,空终结多字符字符串,或指向空终结多字符序列的输入迭代器,它表示一个路径名(可移植或原生格式)
|
| first, last | - | 一对老式输入迭代器 (LegacyInputIterator) ,指定表示路径名的多字符序列 |
| 类型要求 | ||
-InputIt 必须满足老式输入迭代器 (LegacyInputIterator) 。
| ||
-InputIt 的值类型必须为编码字符类型(char、wchar_t、char16_t 和 char32_t)之一。
|
返回值
*this
异常
在发生底层 OS API 错误时可能抛出 filesystem_error,或若发生内存分配失败可能抛出 std::bad_alloc。
示例
Run this code
#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"
参阅
| 接合两个路径而不引入目录分隔符 (公开成员函数) | |
| 以一个目录分隔符连接两个路径 (函数) |