2013-10-31 12 views
8

Sto usando la libreria Boost Filesystem. Ho un percorsoC++ Boost Filesystem: come modificare lo stelo da un percorso?

boost::filesystem::path P("/foo/bar.baz"); 

voglio modificare la parte dello stelo del percorso P a "bar_quz", quindi percorso P rimane

/foo/bar_quz.baz

Can qualcuno mi aiuti? Grazie

+0

Vuoi aggiungere "_quz" per la parte di base del nome del file, o vuoi solo per sostituire del tutto? – zdan

risposta

8
const std::string rndString = "quz"; 
boost::filesystem::path newPath = P.parent_path()/boost::filesystem::path(P.stem().string() + "_" + rndString + P.extension().string()); 
+0

Non proprio - questo finirebbe con "/foo/bar_quz/.baz" – benjymous

+0

@benjymous Thx! ho modificato la mia risposta dopo il tuo feedback –

+0

Penso che sia più "Voglio aggiungere qualcosa al nome del file (non importa di cosa si tratta) pur preservando l'estensione, piuttosto che" so esattamente cosa voglio e aggiungere un'estensione ". l'intera directory vale la pena di file, e aggiungendo una certa cosa ai loro nomi di file.Immaginate anche il nomefile "Base" come variabile –

Problemi correlati