Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write ZIP64 End of Central Directory only if needed. #601

Merged
merged 2 commits into from Jun 4, 2021

Conversation

salvois
Copy link

@salvois salvois commented May 23, 2021

Both Excel and LibreOffice fail to open an XLSX file compressed with SharpCompress when using ZIP64 (Excel is able to repair it, LibreOffice refuses it altogether).

Avoiding the ZIP64 End of Central Directory record when values are representable by the non-ZIP64 End of Central Directory record solves the issue.

This seems to be supported by the ZIP file format specification: "If one of the fields in the end of central directory record is too small to hold required data, the field SHOULD be set to -1 (0xFFFF or 0xFFFFFFFF) and the ZIP64 format record SHOULD be created." (https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT version 6.3.9, paragraph 4.4.1.4).

@adamhathcock
Copy link
Owner

Seems correct. Thanks.

@adamhathcock adamhathcock merged commit 161f99b into adamhathcock:master Jun 4, 2021
@adamhathcock
Copy link
Owner

Released https://www.nuget.org/packages/SharpCompress/0.28.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants