Igor Pavlov - 2020-03-26

crc32 is stored in another level - in xz block.
And xz stream can have several blocks. So it can have several crc32 values.
When 7-Zip opens xz stream, it doesn't read metadata of each xz block. It reads only header of first xz block, and it reads the directory at the end of xz stream that doesn't contain crc32 values.

It's possible to read all xz blocks metadata and combine all crc32 values to one crc32 value. But it's not good for speed.
For example, we have xz archive with 10000 blocks on HDD.
If we read all xz block headers for list command, it will require 10000 seeks on archive, that will require 100 seconds.

 

Last edit: Igor Pavlov 2020-03-26