
On Thu, Apr 24, 2008 at 6:29 PM, John Femiani
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.
Have you looked at ::boost::filesystem::change_extension??? Somehow it is referred to as replace_extension in the docs, but this function will do what you are discussing I think.
-- John Femiani
I did not see that in the boost.filesystem.basic_path reference documentation.