[Boost-bugs] [Boost C++ Libraries] #5649: create_directories() fails with NTFS mounted volumes

Subject: [Boost-bugs] [Boost C++ Libraries] #5649: create_directories() fails with NTFS mounted volumes
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-06-28 09:49:49


#5649: create_directories() fails with NTFS mounted volumes
----------------------------------------------------+-----------------------
 Reporter: Tomas Kazmar <tomash.kazmar@…> | Owner:
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: None
  Version: Boost 1.46.1 | Severity: Problem
 Keywords: |
----------------------------------------------------+-----------------------
 When there is an NTFS mounted volume at some level in the path which is
 passed to `create_directories`. The function fails because of the first
 two checks:
 {{{
 #!div style="font-size: 80%"
   {{{#!c++
   BOOST_FILESYSTEM_DECL
   bool create_directories(const path& p, system::error_code* ec)
   {
     if (p.empty() || exists(p))
     {
       if (!p.empty() && !is_directory(p))
       {
         ...throws/returns an error...
   }}}
 }}}
 For a mounted volume path p is not `empty`, it `exists`, but
 `is_directory(p)` fails. This happens because a mounted volume directory
 is reported by `status(p)` as `file_type::reparse_file`.

 Probably `is_directory()` should be changed to accept existing NTFS
 mounted volumes as already existing directories along the path which is to
 be created.

 Windows 7 64bit, Boost 1.46.1, filesystem v3, MSVC 9

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/5649>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:06 UTC