2012-01-19 9 views
4

は私のコードです:datadir=="c:/db"については昇格パスオブジェクトを引用符なしでフォーマットするにはどうすればよいですか?ここ

fs::path datadir = ...; 
std::string dataDirOption((boost::format("--datadir=%1%") % datadir).str()); 

私はdataDirOption=="--datadir=\"c:/db\""を取得し、代わりに"--datadir=c:/db"

のそれはフォーマットされたときに引用符をスキップするboost::filesystem::pathを伝えることは可能ですか?

datadirdatadir.string()に置き換えて、このように引用符を取り除くことができますが、余分な文字列を使わずにできるかどうかは疑問です。

ありがとうございました。

+0

私はブーストだけで、例えばあるだけの場合には、安全で遊んでいると思いますパス内のスペース。 –

+0

私はそれを理解していますが、mysqldデータベースエンジン用のコマンドラインを作っていて、余分な引用符を本当に嫌うのです。 – mark

答えて

0

私は、後処理という別のオプションを提案します。

boost::replace_all(dataDirOption, "\"", ""); 

こうすることができます例えば'のような別の引用文字へ簡単スイッチ。

4

いいえ、bugは、ブーストフレームワークバージョン1.47.0のファイルで、修正時期をまだ決めていません。

回避策はしかし、次のとおりです。

std::cout << path("/foo/bar.txt").filename().string() 
関連する問題