1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include "ArchiveBase.h"
#include "CRC.h"
unsigned int CArchiveBase::GetCrc32(const std::string& fileName)
{
CRC crc;
unsigned char buffer [65536];
int handle;
int maxRead;
int total = 0;
handle = this->OpenFile(fileName);
if (handle == 0) return crc.GetDigest();
do {
maxRead = this->ReadFile(handle, &buffer, sizeof(buffer));
crc.Update(buffer, maxRead);
total += maxRead;
} while (maxRead == sizeof(buffer));
this->CloseFile(handle);
return crc.GetDigest();
};
|