在Qt中的空文件

4

我有一个名为DBFile的文件。 我正在使用以下代码:

QString DBfile ="C:/Users/E543925/Desktop/VikuTB.xml";
QFile newFile(DBfile);
newFile.open( QIODevice::WriteOnly);

现在我想在文件为空时写入一些内容。在Qt中如何检查文件是否为空?

2个回答

9

在打开文件之前,请检查文件大小,使用 newFile.size()


3

添加追加标志并检查插入指针

newFile.open( QIODevice::WriteOnly|QIODevice::Append );
if (newFile.pos() == 0) {
  // is empty
} else {
  // some data inside
}

免责声明:未经测试的代码,现在我将花时间尝试它...

编辑:已测试,看起来运行良好...


我不知道为什么这个被接受为答案。@VladGordin 的才是正确的。这里的代码不起作用(至少在Qt 5.4中)。QIODevice(文件)支持size()函数,可以准确返回设备的大小。 - rbaleksandar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接