On Thu, Apr 24, 2008 at 6:29 PM, John Femiani <JOHN.FEMIANI@asu.edu> wrote:
Have you looked at ::boost::filesystem::change_extension???Robert Dailey wrote:
> Robert Dailey schrieb:
>
> > boost::filesystem::path myPath(
"C:/somefolder/somefile" );
> > myPath += ".txt";
> >
> > Notice the 2nd line of code. This isn't legal. What is
the cleanest way
> > to append an extension to a file path? I don't think
/= will work; if I
> > remember correctly it will add "/.txt".
>
>
> I think you basically have the option of doing:
>
> 1)
> myPath = myPath.branch_path() / (myPath.leaf() +
".txt");
>
> 2)
> string tmp = p.leaf();
> p.remove_leaf();
> p /= tmp + ".txt";
>
> Both are not really pretty...
>
> Regards,
> Mika
>
>
> I figured that would be the approach I would have to take. I'm
making best efforts
> to only append a filename when the extension is present, since as far
as I can tell being preemptive like that is the cleanest solution.
Somehow it is referred to as replace_extension in the docs, but this
function will do what you are discussing I think.
-- John Femiani