DotNetLibs ZIP is a flexible, reliable and mature Zip/Unzip library. Written entirely in managed code and works with .NET, Mono, Xamarin iOS, Android, .NET CF, UWP and Windows Phone.
Features
Intuitive API.
Compatible with many Zip archivers including WinZip, PKZIP, Info-ZIP, and many others.
Supports legacy ZIP 2.0 encryption method and WinZip compatible AES 128, AES 192, AES 256 encryption methods.
Password protect existing ZIP file without decompressing it.
Unicode file name support.
Supports large archives - over 4GB.
Supports large archives - over 4GB.
No intermediate storages used in all operations.
Supports multi-core compression - the number of cores used for compression can be configured via ZipArchive.Options.CompressorCount property.
Supports wildcard mask in multi-file operations (searching, adding, extracting and deleting).
Advanced file filtering using the FileSet class.
Supports opening self-extracting ZIP archives.
Recursive directory tree operations.
Supports stream and file based operations.
Possibility to access decompression stream directly.
Create ZIP files in memory.
Add data to ZIP file from stream or memory.
Supports shrinking ZIP archive.
Supports Deflate and Enhanced Deflate (compatible with Deflate64(tm) by PKWARE).
Read/write comments within ZIP file.
Thread-safe.
Add, extract, delete, move/rename files in ZIP archive.
Move capability makes it possible to delete source item after successful transfer.
10 compression levels.
FIPS compliant mode in which only FIPS-approved modules are used.
Supports for asynchronous operations including .NET 4.x-style task-based API.
Storing and restoring file dates and attributes (Read-only, Archive, Hidden and others).
Compress and decompress data on-the-fly (in-memory byte array).
Supports for IEnumerable in ZIP item collections (required for using LINQ).
Archive contents listings with complete file details (original size, compressed size, creation and last modification dates, CRC checksum, comment).
Dont use any open-source ZLib compression libraries.
Supports GZipCompression stream and GZipDecompression stream.
Royalty free
One year of free updates
No open source code used
100% managed C# code
Quick start samples
Add files to an archive
using (var zip = new ZipArchive(@"myArchive.zip")) { // Add a single file zip.AddFile(@"C:\temp\source-file.txt"); // add all .dat documents from myFolder zip.Add(@"c:\myFolder\*.dat"); }