前回(ドライブ文字を使わないパス指定)の少し変わったパス文字列、<filesystem>のpathだとどうなるのか、気になって試してみました。
#include <filesystem> #include <iostream> int main() { using namespace std::experimental::filesystem; path x(LR"(\\?\Volume{e96621af-7084-11e3-80b0-XXXXXXXXXXXX}\Windows\system.ini)"); std::wcout << x.root_name() << std::endl; } |
root_nameは、ドライブ文字を含むパスであれば、ドライブ文字の部分を返すメンバー関数です。
これをVisual C++ 2017 (15.3)でコンパイルします。実行結果はこうなりました。
\\?
これはつまり、UNCのため、バックスラッシュ2つで始まる部分はroot name扱いということなのだと思います。Volume{……}までroot name扱いにはなりませんでした。
スポンサード リンク |