大多数时候我想迭代地向文件中添加一行,但在打开要追加的文件之前,我想确定它是一个空文件(如果存在则删除)。< / p>
这种情况经常发生,我猜我可能会忽略一些事情。
那么,在追加之前首先删除文件最方便的方法是什么?
QFile outfile(filename);
if (outfile.open(QFile::Append | QFile::Text))
// An option like `QFile::DELETE_FIRST` or something would be great.
{
...
}
答案 0 :(得分:1)
只是不要使用QFile::Append
- 它将以附加模式打开文件,以便将所有dta写入文件的末尾。您可以看到所有OpenModeFlag
的{{3}}。请改用QIODevice::Truncate
。
QIODevice :: Truncate如果可能,设备在打开之前会被截断。设备的所有早期内容都将丢失。