🧩
std::filesystem::path は Windows には辛い
std::filesystem::path
は /
でパスを足せる。
auto p = std::filesystem::path("c:/windows") / "system32";
p.make_preferred();
std::cout << p.string() << std::endl;
c:\windows\system32
(´·ω·`) .oO( せや、その調子や )
(´·ω·`) .oO( じゃぁこれはどうや )
auto p = std::filesystem::path("c:") / "windows" / "system32";
p.make_preferred();
std::cout << p.string() << std::endl;
c:windows\system32
(´·ω·`) .oO( 最初の \ どこに行ってもうたん )
(´·ω·`) .oO( なら、これならどうや )
auto = std::filesystem::path("c:/") / "windows" / "system32";
p.make_preferred();
std::cout << p.string() << std::endl;
c:\windows\system32
(´·ω·`) .oO( まじか、セパレータ無いとあかんの )
(´·ω·`) .oO( じゃぁさ... )
p = std::filesystem::path("//server/share") / "dir";
p.make_preferred();
std::cout << p.string() << std::endl;
(´·ω·`) .oO( ひっついてしまうんやろ?せやろ? )
\\server\share\dir
(´·ω·`) .oO( ひっつかんのかい! )
(´·ω·`) .oO( じゃぁ先頭に / 付くかどうかで決まるんか? )
auto p = std::filesystem::path("/c:") / "windows" / "system32";
p.make_preferred();
std::cout << p.string() << std::endl;
\c:\windows\system32
(´·ω·`) .oO( うっ... うん... )
Discussion