2016-11-28 93 views
0

我正在尝试编写HTML输出文件。该文件是写的,一切都很好,但我想知道是否有一种方法来获取字符串的文件名,检查是否存在,如果是,然后改变该字符串。所以我绝不会覆盖已经存在的文件。C++如果存在更改输出文件名称

string outputFile; 
cin>>outputFile; 
ofstream out; 
string path ="..\\data\\"+ outputFile+ ".html"; 
out.open(path.c_str()); 

因此,在这种情况下,如果OUTPUTFILE是让我们说“耶稣”,然后我想要做的事,所以如果我要运行这个3次,我不得不像Jesus.html,Jesus2.html,Jesus3.html 。不需要像这样编号,只要对该字符串进行任何改变就行。这甚至有可能吗?我试过这个使用 tmpnam() 但我真的不明白它应该如何工作,如果它甚至可以使用。

感谢所有帮助

回答

1

如果文件在这里提到的方法之一存在,你可以检查:

Fastest way to check if a file exist using standard C++/C++11/C?

完整的代码看起来像这样

inline bool file_exists (const std::string& name) { 
    struct stat buffer; 
    return (stat (name.c_str(), &buffer) == 0); 
} 

while (file_exists(file_name)) 
    file_name += "_1"; 
相关问题