所以我有一些基础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以实现所需的功能?
答案 0 :(得分: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
答案 1 :(得分:4)
boost::filesystem
中有create_directories
便利功能。它以递归方式创建目录,因此您不必自己遍历可能的新路径。
它在<boost/filesystem/convenience.hpp>
。