using Masuit.Tools.Systems; using SharpCompress.Common; using System.Collections.Generic; using System.IO; namespace Masuit.Tools.Files; /// /// 7z压缩 /// public interface ISevenZipCompressor { /// /// 解压文件,自动检测压缩包类型 /// /// rar文件 /// 解压到... /// 忽略空文件夹 void Decompress(string compressedFile, string dir = "", bool ignoreEmptyDir = true); /// /// 压缩多个文件 /// /// 多个文件路径,文件或文件夹 /// 压缩到... /// 压缩包内部根文件夹 /// void Zip(IEnumerable files, string zipFile, string rootdir = "", ArchiveType archiveType = ArchiveType.Zip); /// /// 压缩多个文件 /// /// 多个文件流 /// 压缩到... /// /// 是否需要释放所有流 void Zip(DisposableDictionary streams, string zipFile, ArchiveType archiveType = ArchiveType.Zip, bool disposeAllStreams = false); /// /// 压缩文件夹 /// /// 文件夹 /// 压缩到... /// 压缩包内部根文件夹 /// public void Zip(string dir, string zipFile, string rootdir = "", ArchiveType archiveType = ArchiveType.Zip); /// /// 将多个文件压缩到一个文件流中,可保存为zip文件,方便于web方式下载 /// /// 多个文件路径,文件或文件夹,或网络路径http/https /// /// /// 文件流 PooledMemoryStream ZipStream(IEnumerable files, string rootdir = "", ArchiveType archiveType = ArchiveType.Zip); /// /// 将多个文件压缩到一个文件流中,可保存为zip文件,方便于web方式下载 /// /// 多个文件流 /// /// 是否需要释放所有流 /// 文件流 PooledMemoryStream ZipStream(DisposableDictionary streams, ArchiveType archiveType = ArchiveType.Zip, bool disposeAllStreams = false); /// /// 将文件夹压缩到一个文件流中,可保存为zip文件,方便于web方式下载 /// /// 文件夹 /// /// /// 文件流 public PooledMemoryStream ZipStream(string dir, string rootdir = "", ArchiveType archiveType = ArchiveType.Zip); }