12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #include <qsettings.h>
- #include <qfiledialog.h>
- #include <qtextstream.h>
- #include <qfile.h>
- #include <QTextCodec>
- #include <QCryptographicHash>
- #include "file_md5.h"
- void file_md5(QString fileName)
- {
- if (fileName.isEmpty())
- {
- return;
- }
- QByteArray bytes;
- QByteArray byte_md;
- QFile qfile_in(fileName);
- //读到文件数据
- qfile_in.setFileName(fileName);
- if (!qfile_in.open(QIODevice::ReadOnly))
- {
- return;
- }
- bytes.clear();
- bytes=qfile_in.readAll();
- qDebug("read size=%d\n",bytes.size());
- qfile_in.close();
- //生成输出文件名
- QString out_fileName = fileName.replace(".bin", "_IAP.bin");
- QFile qfile_out(out_fileName);
- qfile_out.setFileName(out_fileName);
- //qDebug("%s", fileName.toUtf8());
- //打开输出文件
- if (!qfile_out.open(QIODevice::WriteOnly))
- {
- return;
- }
- qDebug("write size=%d\n",bytes.size());
- //将原始文件写入到输出文件
- qfile_out.write(bytes);
- //清空校验值
- byte_md.clear();
- //生成校验值
- byte_md = QCryptographicHash::hash(bytes, QCryptographicHash::Md5);
- qDebug("md5 size=%d\n",byte_md.size());
- //将校验值追加文件尾部
- qfile_out.write(byte_md);
- //关闭文件
- qfile_out.close();
- }
|