id summary reporter owner description type status milestone component version severity resolution keywords cc 11138 filesystem::path::canonical() failed with junction points on Windows yanggehua@… Beman Dawes "Hi, In my recent use of filesystem in Boost 1.57, the call of path::canonical() on Windows 7 returns an invalid path if part of the path in question is a junction point. This failure can be reproduced with the following code: {{{#!C++ // ""C:\Gehua"" is a junction point of ""D:\Gehua"" fs::path work(""d:/Gehua/work""); fs::path work_canonical(fs::canonical(work)); std::wstring s = fs::canonical(work_canonical).native(); // True path passes assert(s == L""d:/Gehua\\work""); // try the junction path fs::path work_junction(""c:/Gehua/work""); // this passes assert(fs::exists(work_junction)); s = fs::canonical(work_junction).native(); // this one fails! // s has value ""c:/Gehua\\Gehua\\work"" assert(s == L""d:/Gehua\\work""); }}} The call returned a value of ""c:/Gehua\\Gehua\\work"", which was wrong. " Bugs new To Be Determined filesystem Boost 1.57.0 Problem filesystem, path, canonical