Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 检查一个文件是否等于其他文件_File_Qt_Qnetworkaccessmanager - Fatal编程技术网

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,但我不知道返回数据的是什么。