![](/img/trans.png)
[英]Why does std::experimental::filesystem::path not accept wildcards like “*”?
[英]Path concat difference between std::filesystem and std::experimental::filesystem
我想从std::experimental::filesystem
迁移到std::filesystem
,但我的单元测试开始中断。 我将 Windows、VS2019 和 MSVC 编译器与/std:c++latest
。
我将问题缩小到标准和 实验代码库中的 append 方法(和operator/=
)之间的差异。
#include <filesystem>
#include <experimental/filesystem>
int main() {
std::filesystem::path p1 = "C:\\temp";
p1 /= "\\test\\file.txt"; // Expected: C:\temp\test\file.txt, Actual C:\test\file.txt
std::experimental::filesystem::path p2 = "C:\\temp";
p2 /= "\\test\\file.txt"; // Expected: C:\temp\test\file.txt, Actual C:\temp\test\file.txt
}
问题:如何使用std::filesystem
在 Windows 上附加两个路径组件以获取C:\\temp\\test\\file.txt
?
当您附加绝对路径时,它会替换p1
所有组件,您需要从\\\\test\\\\file.txt
删除前导斜杠以使其成为相对路径,以便将其附加到p1
:
p1 /= "test\\file.txt";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.