std::filesystem::path:: make_preferred
| Member types | ||||||||||||||||||||||||||
| Member constants | ||||||||||||||||||||||||||
| Member functions | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Path decomposition | ||||||||||||||||||||||||||
| Non-member functions | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Helper classes | ||||||||||||||||||||||||||
|
path
&
make_preferred
(
)
;
|
(自 C++17 起) | |
将路径通用格式视图中的所有目录分隔符转换为首选目录分隔符。
例如,在Windows系统中, \ 是首选分隔符,路径 foo / bar 将被转换为 foo\bar 。
目录 |
参数
(无)
返回值
* this
异常
可能抛出实现定义的异常。
示例
Windows系统可以使用 / 作为分隔符,但更倾向于使用 \ ,因此 make_preferred 会将正斜杠转换为反斜杠。另一方面,POSIX系统不使用 \ 作为分隔符,因为反斜杠是有效的文件名字符——Windows路径在POSIX系统上实际指向名为 "a \\ b \\ c" 的文件。基于这个原因,"分隔符"不会被转换。
#include <filesystem> #include <iostream> int main() { std::filesystem::path windows_path("a\\b\\c"), posix_path("a/b/c"); std::cout << "Windows path: " << windows_path << " -> " << windows_path.make_preferred() << '\n' << "POSIX path: " << posix_path << " -> " << posix_path.make_preferred() << '\n'; }
输出:
// on Windows Windows path: "a\\b\\c" -> "a\\b\\c" POSIX path: "a/b/c" -> "a\\b\\c" // on POSIX Windows path: "a\\b\\c" -> "a\\b\\c" POSIX path: "a/b/c" -> "a/b/c"
参见
|
constexpr value_type
preferred_separator
[static]
|
可替代的目录分隔符,除可移植的
/
外亦可使用。在 Windows 上,此为反斜杠字符
\
。在 POSIX 上,此与可移植分隔符相同,均为正斜杠
/
(公开静态成员常量) |