2011-08-06 16 views
3

だから私はいくつかの基盤を持っていますboost::filesystem::path Baseもし存在しなければフォルダを作成し、文字列からバイナリファイルを作成します。現在、私は次のような機能を持っています:ファイルを新しいディレクトリに保存するには?

void file_service::save_string_into_file(std::string contents, std::string name) 
{ 
    std::ofstream datFile; 
    name = "./basePath/extraPath/" + name; 
    datFile.open(name.c_str(), std::ofstream::binary | std::ofstream::trunc | std::ofstream::out ); 
    datFile.write(contents.c_str(), contents.length()); 
    datFile.close(); 
} 

ディレクトリが存在する必要があります。だから、私はどのように私の機能をboost.filesystem APIに更新して、望ましい機能に到達するのだろうか?

答えて

6

boost :: filesystemライブラリを使用するには、事前コンパイルされたboost :: filesystem静的ライブラリとboost :: system静的ライブラリをリンクする必要があることに注意してください。

#include "boost/filesystem.hpp" 

boost::filesystem::path rootPath ("./basePath/extraPath/"); 
boost::system::error_code returnedError; 

boost::filesystem::create_directories(rootPath, returnedError); 

if (returnedError) 
    //did not successfully create directories 
else 
    //directories successfully created 
4

boost::filesystemcreate_directories便利機能があります。ディレクトリを再帰的に作成するので、新しいパスを自分自身でトラバースする必要はありません。

<boost/filesystem/convenience.hpp>です。

関連する問題