是否可以检查所有字节是否实际上都写在QFile上?目前这就是我所拥有的
QFile f(name);
if (f.open(QIODevice::WriteOnly)){
f.write(bytes);
}
bytes
的大小为1MB,有时整个块都没有写入文件,因此我最终得到了损坏的文件。 最佳答案
您正在寻找的是checksum,您可以使用它检查数据的完整性。您要在此处执行的操作是使用qChecksum,如下所示:
QFile f(name);
if (f.open(QIODevice::ReadWrite)) {
f.write(bytes);
}
quint16 fileCheckSum = qChecksum(bytes.data(), bytes.length());
if (f.open(QIODevice::ReadWrite)) {
QByteArray writtenBytes = f.readAll();
quint16 writtenBytesCheckSum = qChecksum(writtenBytes .data(), writtenBytes .length());
if(fileCheckSum == writtenBytesCheckSum)
{
qDebug() << "File is valid.";
}
else
{
qDebug() << "File is corrupt.";
}
}
我还没有编译代码,但是应该可以。如果不是这样,我将举一个例子更具体。