检查文件是否等于其他

Kaz*_*uma 5 qt file qnetworkaccessmanager

好吧,我的服务器上有一个文件,而我的计算机上有其他文件。我想要做的是一个简单的更新程序,它检查我计算机的文件是否与服务器中上传的文件相同。(如果相等则未更新,如果不相等则下载)

我正在使用 QNetworkAccessManager 下载文件。任何的想法?

小智 5

您可以通过以下方式从文件生成校验和:

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();
Run Code Online (Sandbox Code Playgroud)

对两个文件执行此操作(同时以某种方式将签名从一台机器获取到另一台机器)并比较结果。


Dar*_*rov 3

您可以计算文件的SHA-1校验和,然后比较两个校验和。如果它们相等,则文件具有相同的内容。