$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] [Filesystem V3] Directory iterator seems to be broken.
From: Michael Kaes (michael.kaes_at_[hidden])
Date: 2011-03-30 09:35:00
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