[Qt] 獲取檔案MD5碼(支援大檔案) [2012-03-28更新]
阿新 • • 發佈:2019-02-03
#include <QString> #include <QByteArray> #include <QCryptographicHash> #include <QFile> #include <QDebug> QByteArray getFileMd5(QString filePath) { QFile localFile(filePath); if (!localFile.open(QFile::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(); return md5; }