[Filesystem V3] Directory iterator seems to be broken.
Hi all, I have the following two programs. In filesystem V2: ----------------------------------- boost::filesystem::wpath local_path(L"\\\\?\\C:\\"); boost::filesystem::wdirectory_iterator directoryContent(local_path); const std::wstring name1 = directoryContent->path().filename(); std::wcout << "Name 1 == " << name1 << std::endl; ++directoryContent; const std::wstring name2 = directoryContent->path().filename(); std::wcout << "Name 2 == " << name2 << std::endl; ------------------------------------ In filesystem V3: ------------------------------------ boost::filesystem::path local_path(L"\\\\?\\C:\\"); boost::filesystem::directory_iterator directoryContent(local_path); const std::wstring name1 = directoryContent->path().filename().wstring(); std::wcout << "Name 1 == " << name1 << std::endl; ++directoryContent; const std::wstring name2 = directoryContent->path().filename().wstring(); std::wcout << "Name 2 == " << name2 << std::endl; --------------------------------------- The output of V2 for my machine is Name 1 == $Recycle.Bin Name 2 == 00120.mpls This is correct and what I would expect. The output for V3 is Name 1 == $Recycle.Bin Name 2 == C:00120.mpls Which is incorrect. The root path is not correctly removed. Is this a BUG in V3 or did something in the API changed that I have not seen yet? Regards, Michael
participants (1)
-
Michael Kaes