计算文件(内容)的 CRC

Calculate CRC for File(content)

我尝试创建一个程序来根据文件的内容为文件创建 crc 和。我的目的是将它与旧值进行比较,看看内容是否发生了变化。我在 Linux (Debian) 上工作。 我在下面尝试了这段代码,它似乎有效:

FileInfo fi;
fi.strPath=strPath_;
std::ifstream input(fi.strPath, 
std::ios::binary);
std::vector<char> bytes(
   (std::istreambuf_iterator<char>(input)),
   (std::istreambuf_iterator<char>()));
input.close();
unsigned long long ullNumber = 0;
for( auto &bytes:bytes )
    {
        ullNumber += (unsigned long long)bytes;
    }
cout << "Number: "<<ullNumber<<"\n";
fi.ulHash=ullNumber;
mvctFileInfoNew.push_back(fi);

我的问题是:这种方式“可以”使用还是不好(不幸的是我没有那么有经验),我想从更有经验的人那里得到一些意见以提高我的技能。

The thing is, the value does not change.

不应该。 filesystem::hash_value is a hash of the path to the file,而不是文件的 内容 。如果要计算文件内容的 CRC,则必须读取这些内容并对它们应用 CRC 算法。