File 检查一个文件是否等于其他文件
我的服务器上有一个文件,计算机上有另一个。我想做的是一个简单的更新程序,检查我的计算机文件是否与服务器中上载的文件相同。(如果相等,则尚未更新,如果不相等,则下载)File 检查一个文件是否等于其他文件,file,qt,qnetworkaccessmanager,File,Qt,Qnetworkaccessmanager,我的服务器上有一个文件,计算机上有另一个。我想做的是一个简单的更新程序,检查我的计算机文件是否与服务器中上载的文件相同。(如果相等,则尚未更新,如果不相等,则下载) 我正在使用QNetworkAccessManager下载文件。有什么想法吗?您可以计算文件的校验和,然后比较两个校验和。如果它们相等,则文件的内容相同。您将需要服务器上的某些东西(Web服务或普通servlet/php),这些东西将以文件名(或ID或smth)作为参数,并使用其校验和(SHA1、MD5)进行回复 如果本地文件校验和与
我正在使用QNetworkAccessManager下载文件。有什么想法吗?您可以计算文件的校验和,然后比较两个校验和。如果它们相等,则文件的内容相同。您将需要服务器上的某些东西(Web服务或普通servlet/php),这些东西将以文件名(或ID或smth)作为参数,并使用其校验和(SHA1、MD5)进行回复
如果本地文件校验和与远程文件校验和不同,请下载。您可以通过以下方式从文件生成校验和:
QCryptographicHash hash( QCryptographicHash::Sha1 );
QFile file( fileName );
if ( file.open( QIODevice::ReadOnly ) ) {
hash.addData( file.readAll() );
} else {
// Handle "cannot open file" error
}
// Retrieve the SHA1 signature of the file
QByteArray sig = hash.result();
对两个文件都执行此操作(同时以某种方式从一台机器到另一台机器获取签名),并比较结果。我一直在查看QFile,但我不知道返回数据的是什么。