@piksel piksel released this Aug 19, 2018 · 4 commits to master since this release

Assets 3

With the move to .NET Standard and the re-licensing to MIT, effort has been put into creating a stable v1.0 API for SharpZipLib.

Major changes since 0.86:

  • The targeted frameworks are now:
    • .NET Standard 2.0 netstandard2 (Core 2.0+, FW 4.6.1+, Mono 5.2+, UWP 16299)
    • .NET Framework 4.5 net45 (Mono 4, Dependency-free on Windows 8+/2012+)
      See .NET implementation support
  • The library is now released under the MIT license. See Issue #103.
  • The legacy Stream API has been replaced by the IDisposable pattern. (Stream.Close() calls Dispose(true) by default, so it should be backwards compatible.
    See Stream.Close Method.
  • Encoding now works more predictably, defaulting to UTF-8 encoding and correctly specifying it as such.
    See [[ZipStrings and Unicode]].
  • FastZip now prevents traversal outside of the target directory when extracting unless this is explicitly allowed. See Restrict path traversal on FastZip extraction
  • The ICSharpCode.SharpZipLib.Checksums namespace has been renamed ICSharpCode.SharpZipLib.Checksum.

For more detailed notes, see Pre-release version notes.


@piksel piksel released this Jul 21, 2018 · 5 commits to master since this release

Assets 3


  • ZipEntry.IsUnicodeText now defaults to true
  • ZipConstants.DefaultCodePage is now called ZipStrings.CodePage (but backwards-compatible wrappers exists on ZipConstants)
    For more information, see ZipStrings and Unicode


@McNeight McNeight released this Aug 15, 2016 · 273 commits to master since this release

Assets 7

Changes for 0.86.0

  • Multi-member gzip files are now supported. Contributed by Geoff Hart.
  • Zero byte files caused ZipOutputStream to create invalid zipfiles. Contributed by Mark Ritchie.
  • ZipFile.CommitUpdate failed on ODT (Open Document) files when updating in memory. Contributed by Dricks.
  • Exceptions occurring within ZipFile.CommitUpdate were being silently discarded.
  • In FastZip, the NameFilter erroneously removed all escapes from regex. Contributed by John Lemberger.
    Note: This is a breaking change - if you had detoured this filter bug via doubled-up backslashes,
    please halve them - for example change @"\myextract.txt$" to @"\myextract.txt$", or
    change "\\myextract.txt$" to "\myextract.txt$".
  • AES Encryption and Decryption is now supported.
  • TarArchive now has IsStreamOwner property, for use with MemoryStream.
  • Removed exception "Extra data contains Zip64 information but version 2.0 is not high enough" due to rogue zip creators.
  • FastZip.ExtractZip now accepts an Input Stream.
  • Zip input and output streams can now specify buffer sizes.
  • Solved "NTFS Extra data invalid" exception when reading zip files with zero-length NTFS ExtraData entry.
  • Fixed "Size mismatch" exceptions reading zips created by SharpZipLib with an explicit entry CRC and Size.

@McNeight McNeight released this Aug 15, 2016 · 335 commits to master since this release

Assets 6

Changes for 0.85.5

  • Fix for unreferenced ZipFile causing read failure after garbage collection.
  • Fix to ZipInputStream.CloseEntry were skipping could fail for long values.
  • Potential race condition flaw in FastZip event handling fixed up.
  • Wrong exceptions being thrown and wrong arguments for some exceptions fixed.
  • TarArchive handling tweaked so creation of archive with Tar streams is handled cleanly
  • ZipFile Testing now handles directories better.
  • DeflatorEngine altered so TotalIn is long.
  • ZipInputStream handles initial reading for entries with no data better.
  • Updates to unit tests
  • BZip2Constants made internal. A breaking change in theory but no-one should be using these values.
  • BZip2 QSort3 optimised somewhat by changing StackElement from class to struct as per lytico suggestion.
  • Name filters allow quoting of ';' characters using ;
  • Fix GZIP flag checking bug
  • ArgumentNull instead of NullReference in tar header now thrown.
  • WindowsNameTransform now used in fastzip
  • Disposed checking in ZipFile beefed up.
  • Bug in entry handling for stored entries and sizing fixed.
  • Zip entries with zero bytes written optimised.
  • TarBuffer.IsEofBlock made obsolete use static TarBuffer.IsEndOfArchiveBlock instead.
  • GZip Finish and Close no longer add extra footers. Close can be called twice without exception. Writes after finish/close now fail.
  • Fastzip now throws exceptions if they are 'handled' via delegates.

@McNeight McNeight released this Aug 15, 2016 · 422 commits to master since this release

Assets 6

Changes for 0.85.4

  • Fix for encryption going awol in Zip archives sometimes
  • Help files updated and now generated by Sandcastle Help File Builder

@McNeight McNeight released this Aug 15, 2016 · 426 commits to master since this release

Assets 6

Changes for 0.85.3

  • Extended unit tests in many areas.
  • Fixed GZip reading of streams larger then 2^32.
  • Windows date time now handled in ExtraData.
  • Extensions to extra data handling.
  • Encrypting stored entries no longer consumes arbitrary amounts of memory.
  • DeflatorOutputStream now uses CryptoTransform
  • ZipInputStream detection of invalid sizes improved.
  • ZipHelperStream reading end of stream values now correctly handled
  • ZipHelperStream now supports reading/writing data descriptors.
  • ZipFile testing data now handles data descriptors.
  • ZipFile adding entries now correctly handles data descriptors.
  • ZipFile now defaults to dynamic use of Zip64.
  • ZipEntryFactory class made public and bugs fixed.
  • ZipEntry DateTime handling cleaned up - Zero is treated as fixed low value and high values checked and handled.
  • Added progress event handling to FastZip.

@McNeight McNeight released this Aug 15, 2016 · 462 commits to master since this release

Assets 6

Changes for

  • Minor tweaks for CF, ZipEntryFactory and ZipFile.
  • Fix for zip testing and Zip64 local header patching.
  • FastZip revamped to handle file attributes on extract + other fixes
  • Null ref in path filter fixed.
  • Extra data handling fixes
  • Revamped build and conditional compilation handling
  • Many bug fixes for Zip64.
  • Minor improvements to C# samples.
  • ZIP-1341 Non ascii zip password handling fix.
  • ZIP-355 Fix for zip compression problem at low levels

@McNeight McNeight released this Aug 15, 2016 · 520 commits to master since this release

Assets 6

Changes for v0.85.1.271

  • BREAKING CHANGE: Zip name transform implementations and other classes no longer directly support non-relative paths.
  • Update to Compact Framework handling to cater for CF 2.0 as well as 1.0 (minus encryption for 1.0)
  • Fix for Zip64 descriptor handling.
  • Zip64 handling altered to default to "Zip32" for compatability.
  • Add preliminary implementation for handlng of full unicode names.
  • Fix up encryption handling for ZipFile during updates.
  • Fix for updating bug were comment is the only thing updated.
  • Add IEntryFactory interface and default implementation. Used in FastZip class currently.
  • ZIP-1216 GZipOutputStream header writing delayed allowing the class to be used with HTTP and IIS (via HttpResponse.Filter). This was supposed to be fixed in 0.6 but was ommited.
  • ZIP-149 SVN Revision number incorporated in builds.
  • ZIP-1245 CF Build support added

@McNeight McNeight released this Aug 15, 2016 · 567 commits to master since this release

Assets 5

Changes for v0.85

  • Mod time written in gzip header corrected.
  • Fix for ZipInputStream where closing an open entry wasnt handling all cases correctly.
  • Add support for Zip64 handling to both streams and ZipFile classes.
  • Add ability to modify an existing archive to ZipFile class.
  • Limited FxCop cleanups
  • TarArchive and others made IDisposable.
  • TarOutputStream end-of-file garbage data problem fixed.
  • Zip archive no longer performs zero writes which can cause problems.
  • A bundle of minor bug fixes particularly in the Zip area.
  • Enhanced testing facilities in ZipFile class to allow feedback.

Known issues fixed.

  • ZIP-975 BZip Compress and Decompress stream handling inconsistent.
  • ZIP-517 Stored entry handling were descriptors are specified in flags.
  • ZIP-514 FastZip not firing File/Directory Failure.
  • ZIP-513 HttpResponse exception when writing 0 bytes.
  • ZIP-506 Decryption fails for entry with extended time.
  • ZIP-174 Exception on zero length entries.