Files
Moonlight/Moonlight.ApiServer/Extensions/ZipArchiveExtensions.cs
2025-05-14 20:13:24 +02:00

33 lines
1007 B
C#

using System.IO.Compression;
using System.Text;
namespace Moonlight.ApiServer.Extensions;
public static class ZipArchiveExtensions
{
public static async Task AddBinary(this ZipArchive archive, string name, byte[] bytes)
{
var entry = archive.CreateEntry(name);
await using var dataStream = entry.Open();
await dataStream.WriteAsync(bytes);
await dataStream.FlushAsync();
}
public static async Task AddText(this ZipArchive archive, string name, string content)
{
var data = Encoding.UTF8.GetBytes(content);
await archive.AddBinary(name, data);
}
public static async Task AddFile(this ZipArchive archive, string name, string path)
{
var fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var entry = archive.CreateEntry(name);
await using var dataStream = entry.Open();
await fs.CopyToAsync(dataStream);
await dataStream.FlushAsync();
}
}