| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | using System.IO.Compression;using System.Runtime.CompilerServices;using System.Runtime.Serialization.Formatters.Binary;namespace Universal;public class Compressor{    public static bool CompressZipFileDirectory(DirectoryInfo sourceDirectory, DirectoryInfo zipFilePath, string fileName, out string? fullZippedPath)    {        fullZippedPath = null;        if (!sourceDirectory.Exists)            return false;        if (string.IsNullOrEmpty(fileName))            return false;        if (!fileName.EndsWith(".zip"))            fileName = $"{fileName}.zip";        fullZippedPath = Path.Combine(zipFilePath.FullName, fileName);        try        {            ZipFile.CreateFromDirectory(sourceDirectory.FullName, fullZippedPath, CompressionLevel.SmallestSize, false);        }        catch        {            return false;        }        return true;    }    public static bool CompressZipFileDirectory(DirectoryInfo sourceDirectory, Stream stream)    {        if (!sourceDirectory.Exists)            return false;        try        {            ZipFile.CreateFromDirectory(sourceDirectory.FullName, stream, CompressionLevel.SmallestSize, false);        }        catch        {            return false;        }        return true;    }    public static bool DecompressZipFile(string path, Stream stream)    {        try        {            DirectoryInfo directory = new(path);            if (!directory.Exists)                directory.Create();            ZipFile.ExtractToDirectory(stream, path, true);        }        catch        {            return false;        }        return true;    }}
 |