On Tue, Nov 3, 2009 at 1:05 PM, Andrew Marlow <marlow.andrew@googlemail.com> wrote:
I have recently moved back to C++ from a 2 year spell with Java. The C++ code I am working on is for Windoze with Visual Studio 8. We are using boost 1.34.1. The prog I am working on has to do a few filesystem things so I have started to use boost::filesystem. However, there does not seem to be a way to change the current working directory using boost::filesystem. So I am forced to use chdir, which is _chdir on Windoze. On Unix the header for the prototype is in unistd.h, on Windoze it is in direct.h. So its back to good old ifdefs. Suddenly, java looks more attractive. Ifdefs are just so nostalgic....

Is there any chance this can be added to boost please?

I realise that there may be more to it than just wrapping the chdir/_chdir call. There is the whole issue of return values versus exceptions, errno etc etc. I do not know what the current thinking is about these things in boost. Perhaps someone can enlighten me?

Have you considered upgrading to a more recent version of boost?  1.34.1 is really very old, and (as luck would have it) there is a function boost::filesystem::current_path(const Path&) as of 1.35 that does exactly this.