Qt为什么实现QFile :: size返回qint64而不是quint64

问题描述

因此,通过查看QFile文档,我发现QFile::size()返回了qint64

如果QFile::size()返回一个无符号整数,即quint64,因为文件大小从0字节到0字节不等,这是有意义的(至少对我而言)。 QFile::size()父类(即QFileDevice::size())重新实现某些方法,并从QIODevice::size()重新实现。在所有这些实现中,都没有提及负数,即-1等。

QIODevice::size()中的基本实现具有说明

对于开放式随机访问设备,此函数返回 设备。对于开放式顺序设备,将返回bytesAvailable()

如果设备关闭,返回的大小将不反映实际大小 设备的大小。

在指示qiodevice::size()返回类型的QIODevice::bytesAvailable()中也没有提到-1返回值,但是其返回类型也是qint64

这是Qt的设计决策吗,如果文件大小较大,它也可以使用负数,并且也可以扩展其父类,即

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)