Boost logo

Boost Users :

Subject: Re: [Boost-users] filesystem: create_directory unexpected exception
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2009-07-27 13:18:05


On Mon, Jul 27, 2009 at 7:39 AM, ciju john<johnc_at_[hidden]> wrote:
> Platform: Windows XP Pro
> Boost version: 1.38 1.39 (BoostPro binary release)
>
> try {
>        boost::filesystem::create_directory ("C:\Program Files\hello123");
>      }
>      catch (const boost::filesystem::basic_filesystem_error<char*>& ) {
>        std::cerr << "Directory creation failed" << std::endl;
>      }
>
> The above code crashes if user doesn't have root permission. I assume
> some exception is being thrown as catch (...) catches whatevers being
> thrown. The documentation says "Throws: basic_filesystem_error<Path>
> if  Effects fails for any reason other than because the directory
> already exists." The requested directory "C:\Program Files\hello123"
> doesn't exist, so I should have caught a
> boost::filesystem::basic_filesystem_error. Is this a known issue or am
> I the only one seeing this?

If you want to know what exception in being thrown, you could try
std::cerr << boost::current_exception_diagnostic_information() in the
catch(...), after including
<boost/exception/diagnostic_information.hpp>.

Emil Dotchevski
Reverge Studios, Inc.
http://www.revergestudios.com/reblog/index.php?n=ReCode


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net