[Boost-bugs] [Boost C++ Libraries] #9016: filesystem::is_directory() returns false for junction

Subject: [Boost-bugs] [Boost C++ Libraries] #9016: filesystem::is_directory() returns false for junction
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-08-20 03:33:47


#9016: filesystem::is_directory() returns false for junction
------------------------------+------------------------
 Reporter: harris.pc@… | Owner: bemandawes
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: filesystem
  Version: Boost 1.53.0 | Severity: Problem
 Keywords: |
------------------------------+------------------------
 On Windows 7, create a Junction (to another folder).

 You can use the "hardlink shell ext" tool to make the junctions/symlinks
 (google for it):
 Or the usual command line tools.

 The boost::is_directory(target) returns false on this junction.

 I used this Junction technique to move c:\Users\Me\AppData\Local\Temp to
 another disk, and as a consequence, temp_directory_path() will always fail
 because that host path is not treated as a directory.

 ie the line in temp_directory_path():

 {{{
   if ((ec&&!is_directory(p, *ec))||(!ec&&!is_directory(p)))
 }}}

 cheers,
 Paul

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9016>
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:13 UTC