CommonNetFuncs.Compression
2.0.5
dotnet add package CommonNetFuncs.Compression --version 2.0.5
NuGet\Install-Package CommonNetFuncs.Compression -Version 2.0.5
<PackageReference Include="CommonNetFuncs.Compression" Version="2.0.5" />
paket add CommonNetFuncs.Compression --version 2.0.5
#r "nuget: CommonNetFuncs.Compression, 2.0.5"
// Install CommonNetFuncs.Compression as a Cake Addin #addin nuget:?package=CommonNetFuncs.Compression&version=2.0.5 // Install CommonNetFuncs.Compression as a Cake Tool #tool nuget:?package=CommonNetFuncs.Compression&version=2.0.5
CommonNetFuncs.Compression
This project contains helper methods for compressing files into a zip file as well as compress and decompress streams.
Contents
Files
Used for compressing file data into a ZipArchive class.
<details> <summary><h3>Usage Examples</h3></summary>
Add file to zip folder and write it to disk.
using static CommonNetFuncs.Compression.Files;
using static CommonNetFuncs.Excel.Npoi.Export;
public async Task CreatePeopleZipFile()
{
List<Person> people = [];
//Some code populating people list here
await using MemoryStream zipStream = new();
//Converts list to excel file in a MemoryStream (see Excel.Npoi)
await using MemoryStream peopleExcelStream = await people.GenericExcelExport() ?? new();
await (peopleExcelStream, "People.xlsx").ZipFile(zipStream, CompressionLevel.SmallestSize);
peopleExcelStream.Dispose();
zipStream.Position = 0;
//Write the zip file to disk
await using FileStream fs = new("People.zip", FileMode.Create, FileAccess.Write);
await zipStream.CopyToAsync(fs);
fs.Flush();
}
Add multiple files to a ZipArchive object and write it to disk.
public async Task CreatePeopleAndAddressesZipFile()
{
List<Person> people = [];
List<Address> addresses = [];
//Some code populating people and addresses lists here
await using MemoryStream zipStream = new();
using ZipArchive archive = new(zipStream, ZipArchiveMode.Create, true);
//Convert lists to excel file in a MemoryStream (see Excel.Npoi) then add them to a ZipArchive
await using MemoryStream peopleExcelStream = await people.GenericExcelExport() ?? new();
await peopleExcelStream.AddFileToZip(archive, "People.xlsx", CompressionLevel.SmallestSize);
peopleExcelStream.Dispose();
await using MemoryStream addressesExcelStream = await addresses.GenericExcelExport() ?? new();
await addressesExcelStream.AddFileToZip(archive, "Addresses.xlsx", CompressionLevel.SmallestSize);
addressesExcelStream.Dispose();
archive.Dispose();
await using FileStream fs = new("PeopleAndAddresses.zip", FileMode.Create, FileAccess.Write);
await zipStream.CopyToAsync(fs);
fs.Flush();
}
</details>
Streams
Used for compressing and decompressing streams of data. Currently supported compression algorithms:
- Brotli
- GZip
- Deflate
- ZLib
<details> <summary><h3>Usage Examples</h3></summary>
Compress and then decompress a stream. CommonNetFuncs.Web.Requests has a more practical implementation decompressing compressed API responses.
public async Task CompressAndDecompressFile()
{
//Create stream
await using FileStream fileStream = new("TestFile.txt", FileMode.Open, FileAccess.Read);
//Compress the stream
await using MemoryStream compressedStream = new();
await fileStream.DecompressStream(compressedStream, ECompressionType.Gzip);
//Decompress the stream
await using MemoryStream decompressedStream = new();
await compressedStream.DecompressStream(decompressedStream, ECompressionType.Gzip);
}
</details>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. |
-
net9.0
- CommonNetFuncs.Core (>= 2.0.5)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on CommonNetFuncs.Compression:
Package | Downloads |
---|---|
CommonNetFuncs.Web.Requests
Helper methods that deal with creating, sending, and handling the responses from REST API calls |
|
CommonNetFuncs.Email
Helper methods that deal with sending email, including an SMTP email sending service and an HTML email builder helper. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.5 | 49 | 11/26/2024 |
2.0.2 | 88 | 11/18/2024 |
2.0.1 | 81 | 11/15/2024 |
2.0.0 | 80 | 11/14/2024 |
1.0.47 | 97 | 11/14/2024 |
1.0.42 | 118 | 11/12/2024 |
1.0.40 | 108 | 11/12/2024 |
1.0.37 | 99 | 11/4/2024 |
1.0.31 | 104 | 10/31/2024 |
1.0.28 | 103 | 10/25/2024 |
1.0.26 | 155 | 10/18/2024 |
1.0.25 | 83 | 10/17/2024 |
1.0.24 | 84 | 10/17/2024 |
1.0.18 | 125 | 10/11/2024 |
1.0.17 | 147 | 9/27/2024 |
1.0.16 | 122 | 9/27/2024 |
1.0.14 | 106 | 9/23/2024 |
1.0.13 | 118 | 9/18/2024 |
1.0.12 | 107 | 9/18/2024 |
1.0.11 | 103 | 9/18/2024 |
1.0.10 | 132 | 9/11/2024 |
1.0.9 | 121 | 9/11/2024 |
1.0.8 | 144 | 9/11/2024 |
1.0.7 | 126 | 9/11/2024 |
1.0.1 | 147 | 9/4/2024 |
1.0.0 | 120 | 9/2/2024 |