2013-10-31 6 views
8

私はBoost Filesystemライブラリを使用しています。 私は "bar_quz" にパスpの茎の部分を変更したいので、パスPがC++ Boost Filesystem:パスからステムを変更するには?

/foo/bar_quz.baz

をすることができままパス

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

を持っています誰か助けて? ありがとう

+0

"_quz"をファイル名のベース部分に追加したいのですか、それとも完全に置き換えるだけですか? – zdan

答えて

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

あまりにも - それは "/foo/bar_quz/.baz"になるでしょう – benjymous

+0

@benjymous Thx!あなたのフィードバックに従って私の答えを編集しました –

+0

"私が望むものを正確に知り、拡張子を追加するのではなく、拡張子を保持しながら、ファイル名に何かを追加したい"と思います。ディレクトリ全体のファイルを作成し、ファイル名に特定のものを追加することもできますので、 "Base"ファイル名も変数として想像してください。 –

関連する問題