16,202
社区成员
发帖
与我相关
我的任务
分享
QFile file("/usr/local/VingooProject/res/download/a/1.gz");
QTextStream in(&file);
QString str;
QByteArray bb;
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
str = in.readAll();
qDebug() << str; //这边输出为空
bb = QCryptographicHash::hash ( str.toLatin1(), QCryptographicHash::Md5 );
str = bb.toHex();
}
file.close();
/**
* @brief 将文件md5校验,生成一个字符串.
* @return
*/
QString MD5::StartMd5()
{
QString str;
QFile localFile("/usr/local/VP/22.gz");
if (!localFile.open(QIODevice::ReadOnly))
{
qDebug() << "file open error.";
return 0;
}
QCryptographicHash ch(QCryptographicHash::Md5);
quint64 totalBytes = 0;
quint64 bytesWritten = 0;
quint64 bytesToWrite = 0;
quint64 loadSize = 1024 * 4;
QByteArray buf;
totalBytes = localFile.size();
bytesToWrite = totalBytes;
while (1)
{
if(bytesToWrite > 0)
{
buf = localFile.read(qMin(bytesToWrite, loadSize));
ch.addData(buf);
bytesWritten += buf.length();
bytesToWrite -= buf.length();
buf.resize(0);
}
else
{
break;
}
if(bytesWritten == totalBytes)
{
break;
}
}
localFile.close();
QByteArray md5 = ch.result();
str = md5.toHex();
qDebug() << md5.toHex();
return str;
}
参考:QT 如何对压缩文件进行md5校验?