C ++如果文件不存在则创建它

时间:2013-12-07 20:45:04

标签: c++ file-io

我想使用OFstream在文件夹中创建文件。以下代码行 - 始终无法创建“输出文件...”。无论我尝试什么。

最终我想用变量(类型String)替换字符串的JOHN部分。

提示将非常感谢。

     ofstream output_file(".\\Players\\JOHN\\Balance.txt", ios::app); // open the output file for appending
if (!output_file.is_open()) { // check for successful opening
    cout << "Output file could not be opened! Terminating!" << endl;
    _sleep(1000);
    return 1; 
}
else{

output_file << getAcctbal(); 
output_file.close();
return 0;
}

编辑:

玩家文件夹中有什么 - 在该玩家文件夹中。对于每个单独的播放器我想拥有一个文件(所以John)在这种情况下是一个文件夹。这个文件夹不存在,是我想要实现的。 非常感谢你: - )

1 个答案:

答案 0 :(得分:3)

只能在已存在的目录中创建文件。因此,在尝试创建文件之前,您需要强制存在目录结构。

没有C ++标准库功能可以做到这一点。您可以实现自己的功能,以便轻松完成。解析其目录组件的路径。从树中的最高点开始,依次创建每个子目录。

您似乎正在使用Windows。 Windows API具有直接满足您需求的功能。特别是SHCreateDirectory函数。我不知道你是否准备好将自己绑定到特定于平台的API,例如那个 - 你的选择。