Hi Ian,

escape character is not the problem. I would put my code here:

#include "stdafx.h"
#include "Windows.h"
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/fstream.hpp>
#include <iostream>
#include "string"
#include "conio.h"
#include "vector"
#include <boost/exception/diagnostic_information.hpp>

#define BOOST_WINDOWS_PATH 
#define BOOST_WINDOWS_API
using namespace std;
using namespace boost::filesystem; 


extern "C" void straight_to_debugger(unsigned int, EXCEPTION_POINTERS*)
{
    throw;
}
extern "C" void (*old_translator)(unsigned, EXCEPTION_POINTERS*)
         = _set_se_translator(straight_to_debugger);



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;

  //boost::system::system_error exceptions;
  //if( !exists( bundle_path ) )
  try{
   create_directory(bundle_path);
  }
  catch(boost::system::system_error const &e)
  {
   cerr<<diagnostic_information(e)<<endl;
  }
  cout<<"directory created "<<endl;

  getch();

return 0;
}

You can see that, I have used proper path. The problem is the Windows style path is getting converted somehow in POSIX format. As I printed the path and it came out to be

E:/doggy

Can you point me what mistake I am doing here.

Thanks
Avanindra

--- On Mon, 13/12/10, Ian Bruntlett <ian.bruntlett@gmail.com> wrote:

From: Ian Bruntlett <ian.bruntlett@gmail.com>
Subject: Re: [Boost-users] boost::filesystem path problem under WINDOWS
To: boost-users@lists.boost.org
Date: Monday, 13 December, 2010, 11:33 PM

Hi avanindra,

std::exception::what: boost::filesystem::create_directory: The filename, directo
ry name, or volume label syntax is incorrect: "E:\doggy"

OK, I don't have the full story here. Is the directory name being specified in the C++ source code? If so then remember that "\" is used for character escape sequences. If you are specifying the name in the source code, you may need to type "E:\\doggy". The double "\" will resolve to a single "\" in the executable.

HTH,



Ian

--
-- ACCU - Professionalism in programming - http://www.accu.org/

-----Inline Attachment Follows-----

_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users