Zip Ahoy is a small NetStandard 2.0 library for creating/extracting directories to/from zip-files in C#.
Although there are already high-level helper methods for this in the System.IO.Compression.*
namespaces, they lack support for cancellation, and a way to get meaningful progress reporting at a more fine-grained level than per-file.
ZipAhoy adds these things in two simple high-level static methods:
Archive.CreateFromFolderAsync(
string folderPath,
string archiveFilePath,
Action<float> progress = default,
CancellationToken token = default)
and
Arhive.ExtractToFolderAsync(
string archiveFilePath,
string destFolderPath,
Action<float> progress = default,
CancellationToken token = default)
There are usage examples in the ZipAhoy.Tests project.
There is a NuGet package, called ZipAhoy here.
Alternatively, just grab the source and add the ZipAhoy class library to your project.
ZipAhoy is released under the MIT license. See LICENSE.md for details.