std::filesystem 和 std::experimental::filesystem 之间的路径差异



我想从std::experimental::filesystem迁移到std::filesystem,但我的单元测试开始中断。我使用Windows,VS2019和MSVC编译器与/std:c++latest

我将问题缩小到标准和实验代码库中的追加方法(和operator/=(之间的差异。

#include <filesystem>
#include <experimental/filesystem>
int main() {
std::filesystem::path p1 = "C:\temp";
p1 /= "\test\file.txt";           // Expected: C:temptestfile.txt, Actual C:testfile.txt
std::experimental::filesystem::path p2 = "C:\temp";
p2 /= "\test\file.txt";           // Expected: C:temptestfile.txt, Actual C:temptestfile.txt
}

:如何使用std::filesystem在 Windows 上附加两个路径组件以获取C:temptestfile.txt

当你附加一个绝对路径时,它会替换p1的所有组件,你需要从\test\file.txt中删除前导斜杠,使其成为相对路径,以便它附加到p1

p1 /= "test\file.txt";

相关内容

  • 没有找到相关文章

最新更新