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 以达到所需的功能?

4

2 回答 2

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
于 2011-08-06T18:08:41.970 回答
4

中有一个create_directories便利功能boost::filesystem。它递归地创建目录,因此您不必自己遍历可能的新路径。

它在<boost/filesystem/convenience.hpp>

于 2011-08-06T17:05:15.250 回答