• 4642阅读
  • 3回复

怎么比较两个二进制文件是否一样 [复制链接]

上一主题 下一主题
离线浪迹江湖
 

只看楼主 倒序阅读 楼主  发表于: 2009-08-06
有两个二进制可执行文件,打小相同为512K,我想用Qt判断它们的文件内容是否一样,该怎么判断呢,谢了
离线浪迹江湖

只看该作者 1楼 发表于: 2009-08-06
up一下
离线jorneyr

只看该作者 2楼 发表于: 2009-08-06
二进制的方式读取,一个字节一个字节的比较。
离线浪迹江湖

只看该作者 3楼 发表于: 2009-08-07
这是我写的比较二进制可执行文件的源代码:
QFile formerFile(formerFilePath);   //第一个可执行文件
    if (!formerFile.open(QIODevice::ReadOnly | QIODevice::Text))
        {
        qDebug()<<"cannot open former Pmon file";
        return;
        }

    QString formerStr =QString(formerFile.readAll()); //从第一个文件中读出所有内容放到formerStr中


QFile currentFile(currentFilePath);  //第二个可执行文件
        if (!currentFile.open(QIODevice::ReadOnly | QIODevice::Text))
        {       qDebug()<<"cannot open current  file";
      
                return ;
        } QFile currentFile(str);
        if (!currentFile.open(QIODevice::ReadOnly | QIODevice::Text))
        {       //qDebug()<<"cannot open current Ec file";
        mFinishedStatus = update_pmon_unknown_error;
                return Bad;
        }

     QString currentStr =QString(currentFile.readAll()); //第二个可执行文件的所有内容

     if(formerStr==currentStr) //比较两个文件的区别
    {
        qDebug()<<"two string are equal";
         return;
     }



结果是:formerStr和currentStr都为" ",
我不理解为什么,一定要用qdatastream一个个的比较么
快速回复
限100 字节
 
上一个 下一个