Interface changes
- ZipArchive.DefaultFolderPersistence and ZippedFolder.Persistent properties have been added to manually control persistence.
- Added AbstractFile.DefaultStreamBufferSize property that allows setting a default buffer size for stream copy operations like CopyTo.
- Added PendingActionCount property that indicates the number of pending actions on the archive. Useful as a debugging aid.
- Added property ZipWriter.AllowUncompressedData. It enables writing true uncompressed data in Zip archives.
- Added the ZipWriter.TextEncoding property, which allows the developer to force the use of UTF8 encoding in standard Zip headers. Use with caution, as it breaks compatibility with some 3rd party zip tools.
Other minor changes and bug fixes
- Updating a zip archive located in a MemoryFile no longer fails.
- ArgumentException is no longer thrown when a ZippedFile is read during a BeginUpdate/EndUpdate on the same archive.
- Renaming a zipped item in an archive to an item that already exists no longer silently fails instead of throwing an exception.
- Zipped folders are no longer marked as persistent by default, which increased the size of the archive.
- Manipulating a Zip archive within another Zip archive no longer fails with "ArgumentException: The inner stream must be seekable."
- Updating an existing split zip file no longer throws an InvalidOperationException via a FileSystemInternalException.
- ArgumentException is no longer thrown when a ZippedFile is read during a BeginUpdate/EndUpdate on the same archive. [Does not apply to .NET CF version.]
- Using the CompressionLevel.None value no longer generates an invalid zip file.
- Zip archives using SFX prefixes are no longer corrupted when updated with empty items such as folder entries.
- Zip archives are no longer sometimes corrupted when folder entries are deleted.
- Fixed a bug where a TarredFile's meta-data was not applied to its destination during a copy/extraction operation.
- Fixed a bug where setting the ZipArchive.AllowSpanning property to 'true' on a fixed-disk-based Zip file threw a ZipIOException.
- Fixed a bug where updating split zip archives where the number of parts and/or the name format changed did not work correctly.
- Fixed bugs with LZMA compression where deadlocks or exceptions occurred when empty or very short files/streams were used.
- Fixed a bug where a ZipIOException ("Calculated authentication value does not match the reported value") was thrown when unzipping files that use LZMA compression and WinZipAES encryption.
- Fixed a bug where features from Xceed.Compression and Xceed.Compression.Formats were locked.
- Item data can now be exposed as a Stream object for easy integration with classes that use the Stream interface and for reading or writing nested zip archives.
Changes that may affect your projects
- Folder entries are no longer written to the archive by default.