运用MD5文件查重

我们已经了解MD5是什么了。

我们可以运用MD5查找重复文件。

QByteArray Widget::getfileMD5const QString &fileName)
{
    QFile filefileName);
    iffile.openQIODevice::ReadOnly))
    {
        QCryptographicHash hashQCryptographicHash::Md5);
        //按大小读取100M
        while!file.atEnd))
        {
             QByteArray content = file.read100*1024*1024);
             hash.addDatacontent);
        }
       QByteArray MD5 = hash.result);
       //qDebug)<<"The MD5 of file is "<<MD5.toHex);
        file.close);
       return MD5;
    }

    else
    {
        return QByteArray);
    }
}
QStringList files = getfile"C:/Users/DELL/Desktop/current study/testfilename");

    forint i = 0; i<files.count);i++)
    {
        QString fileName = files.ati);
        QByteArray md5 = getfileMD5fileName);
        //qDebug)<<"filename为"<<fileName <<"MD5的值为"<< md5.toHex);
        fileMD5[md5].appendfileName);
    //qDebug)<<filelist;
    }
    //遍历fileMD5
    forQHash<QByteArray,QStringList>::iterator it= fileMD5.begin);it!=fileMD5.end);it++)
    {
        qDebug)<<"MD5的值"<<*it).first)<<"有多少个相同文件名count"<<it.value).count);
        ifit.value).count)>1)
        {
            qDebug)<<it.value);
        }
    }
在遍历QHsh时,在QT中,这个就表示了键值对了,
QHash<QByteArray,QStringList> fileMD5;
在C++时,我们学过,<>中是2个类型,我们这个是QByteArray与QStringList两个类型。
在QT中可以直接it.key)与it.value);访问。


Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注