René Scharfe:
Sizes can be stored in zip64 entries even if they are lower (from a
paragraph about the data descriptor):
"4.3.9.2 When compressing files, compressed and uncompressed sizes
should be stored in ZIP64 format (as 8 byte values) when a
file's size exceeds 0xFFFFFFFF. However ZIP64 format may be
used regardless of the size of a file."
That is only for the data descriptor. And this is the really confusing
one as it only has the sizes, and do not have an indication anywhere
of which format it is in. So they are either 32-bit or 64-bit,
depending on whether it is a ZIP64 format archive, but it doesn't
define how to tell.
For regular entries, the text is a bit clearer about the -1, though.
Windows XP. Don't laugh. ;)
You can always install 7-zip or something to extract on XP.
What do other archivers do?
You should compare with what bsdtar (libarchive) does in zip64 mode.
It also only ever does streaming mode (with data descriptors and
such), and it does zip64.
But I think a more important question is: Can the generated files be
extracted by popular tools (most importantly Windows' built-in
functionality, I guess)?
OK, so only enable zip64 mode if there are files >4G or the archive
ends up being >4G. But the question is how we can tell, especially in
streaming mode, and especially if data descriptors are magical...
--
\\// Peter - http://www.softwolves.pp.se/