如何在c ++中将文件保存到所需位置?

时间:2015-06-08 08:59:45

标签: c++ filesystems

我正在尝试将文件保存到某个位置,如下所示:

int main( int ac, char **av )
{
    TiXmlDocument tinyxml_document_object;   
    std::string file_path = av[0];
    std::replace(file_path.begin(), file_path.end(), '\\', '/');
    file_path = file_path.substr(0, file_path.find_last_of("/"));   
    file_path = file_path.substr(0, file_path.find_last_of("/") + 1); 
    file_path = file_path.substr(0, file_path.find_last_of("/") - 8);
    Environment_C::PutEnv("DATA_ROOT", file_path + "test_output/my_file.xml");
    std::string system_settings_dir = file_path + "test_output/my_file.xml";
    std::cout<< system_settings_dir.c_str();
    tinyxml_document_object.SaveFile( system_settings_dir.c_str() );
    return 0;
}

但是当我执行它时,不会创建任何文件夹作为“test_output”。这里的文件路径是:

file_path = "D:/project/learning/target/"

我正在尝试创建另一个名为“test_output”的文件夹,其中包含“my_file.xml”。这里system_settings_dir是:

system_settings_dir = D:/project/learning/target/test_output/my_file.xml

那么,请帮我解释为什么没有创建这个文件夹?如果这不对,那么建议我将“my_file.xml”文件保存到同一位置的正确方法。

1 个答案:

答案 0 :(得分:1)

打开要写入的文件只会创建文件,而不是完整的目录层次结构。

在运行程序之前,您需要确保存在实际的目录层次结构(即D:/project/learning/target/test_output)。