这是我写的比较二进制可执行文件的源代码:
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一个个的比较么