Namespaces
Variants

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

From cppreference.net
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 维护的路径名中。
2,3) (1) 相同,但接受任何 std:: basic_string 、以空字符结尾的多字符字符串,或指向以空字符结尾的多字符序列的输入迭代器。
4) (1) 相同,但接受任何指定多字符字符串的迭代器对。

目录

参数

p - 要追加的路径名
source - std:: basic_string 、以空字符结尾的多字符字符串,或指向以空字符结尾的多字符序列的输入迭代器(表示可移植格式或原生格式的路径名)
first, last - 指定表示路径名的多字符序列的 LegacyInputIterator s 迭代器对
类型要求
-
InputIt 必须满足 LegacyInputIterator 的要求
-
InputIt 的值类型必须是编码字符类型之一( char wchar_t char16_t char32_t

返回值

* 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"

参见

在不引入目录分隔符的情况下连接两个路径
(公开成员函数)
使用目录分隔符连接两个路径
(函数)