Boost logo

Boost Users :

Subject: Re: [Boost-users] boost::filesystem path problem under WINDOWS
From: Jeff Flinn (TriumphSprint2000_at_[hidden])
Date: 2010-12-13 10:03:12


avanindra singh wrote:
> Hi,
>
> Here is the code snippet I am using under windows in VS2008.
>
> #define BOOST_WINDOWS_PATH
> #define BOOST_WINDOWS_API

You shouldn't be manually defining these, and would normally get a
compile error...

> #include "stdafx.h"

but you probably are configure to use precompiled headers, so anything
before stdafx.h is ignored.

> #include <boost/filesystem/operations.hpp>
> #include <boost/filesystem/fstream.hpp>
> #include <iostream>
> #include "string"
> #include "conio.h"
> #include "vector"
>
> using namespace std;
> using namespace boost::filesystem;
>
>
>
> int _tmain(int argc, _TCHAR* argv[])
> {
> string _path = "E:\\doggy";
> path dir_path(_path.c_str());
> vector< pair<string,bool> > _file_jpeg_pair;
> string full_list_path = _path+"\\" + "list.txt";
> string bundle_path_str = _path+"\\" + "bundle";
> path bundle_path(_path.c_str());
> //creating bundle directory
> cout<<bundle_path<<endl;
> //if( !exists( bundle_path ) )
> create_directory(bundle_path);
> cout<<"directory created "<<endl;
> getch();
> return 0;
> }
>
>
> This code is giving run time unhandled exception, so for that matter any
> other call of boost filesystem.

Catch the unhandled exception and see what the problem is. Filesystem
throws boost::system::system_error exceptions.

> Strange thing is the Windows path E:\doggy is being printed as E:/doggy,
> seems like the path is getting converted to POSIX format.

Depending on the boost filesystem version you can ask for native
formatted strings.

Jeff


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