Qt中的空文件

Posted

技术标签:

【中文标题】Qt中的空文件【英文标题】:Empty file in Qt 【发布时间】:2012-09-09 07:37:58 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

newFile.size()

打开前检查文件大小

【讨论】:

【参考方案2】:

添加附加标志并检查插入pointer

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

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

edit:经过测试,似乎运行良好...

【讨论】:

我不知道为什么这是公认的答案。 @VladGordin 是正确的。这在这里不起作用(至少在 Qt 5.4 中)。 QIODevice(即文件)支持size()函数,准确返回设备的大小。

以上是关于Qt中的空文件的主要内容,如果未能解决你的问题,请参考以下文章

角度拖放,事件中的空文件数组

JBoss EAP 6.4.4 中的空日志文件(日志配置文件)

您如何处理 Apache Pig 中的空输入文件或丢失的输入文件?

使用Git SVN删除SVN存储库中的空文件夹

如何修复无法索引到 PowerShell 中的空数组

RestEasy 异步请求中的空指针异常