用于压缩文件格式的开源 .NET API
用于处理流行压缩文件格式的开源 .NET 库。
什么是 SharpCompress?
SharpCompress 是一个开源的纯 .NET 库,使软件开发人员能够使用流行的压缩文件格式,如 RAR、7ZAP、ZIP、TAR、GZIP、BZIP2 等。它提供了解压缩 7ZIP、ZIP/unzip、TAR/untar LZIP/unlzip、BZIP2/unbzip2 和 GZIP/ungzip 的能力,具有只进读和文件随机访问 API。它还实现了对 ZIP、TAR、BZIP2 和 GZIP 文件格式的写入支持。
SharpCompress 几个重要的功能,例如从一个目录中的所有文件创建一个 zip 存档到一个文件,从一个 RAR 文件中提取所有文件到一个目录,使用 ReaderFactory 自动检测存档类型并打开入口流,使用 ReaderFactory 自动检测存档类型和打开入口流等等
SharpCompress 入门
要安装 SharpCompress,您需要具有 .NET Framework 3.5 或更高版本。您可以从 GitHub 手动下载存储库。或者,您可以使用 NuGet。
这是命令
Install-Package sharpcompress -Version number
用于从 ZIP 文件压缩和提取文件的 .NET 库
SharpCompress 使 .NET 开发人员能够通过将文件夹的内容压缩到新的 ZIP 文件中来创建 ZIP 文件。 ZIP 文件格式是使用最广泛的压缩和归档文件格式之一。它有助于减少一个或多个文件的大小,您还可以将多个文件和文件夹归档到一个文件中。该 API 还使开发人员能够从 ZIP 文件中提取文件。您只需要指出要提取的文件,它将循环遍历存档中的每个文件以将其保存到目录
从 RAR 中提取所有文件 - C#
// Read RAR file
RarArchive rarArchive = RarArchive.Open("fileformat.rar");
// Extract all data
foreach (var entry in rarArchive.Entries.Where(entry => !entry.IsDirectory))
{
entry.WriteToDirectory("\\filformat", new ExtractionOptions()
{
ExtractFullPath = true,
Overwrite = true
});
}
使用 .NET 将文件添加到现有 ZIP 文件
SharpCompress 库为用户提供了将文件添加到现有 ZIP 文件的功能。首先,您需要选择要附加到现有 ZIP 文件的文件。 SharpCompress 将首先将其保存到一个临时文件中,完成后可以将临时文件移动到永久位置。这样,当您将新文件添加到现有 ZIP 时,它就会被压缩。您可以使用三个简单的步骤将现有文件添加到 zip 存档
将文件添加到现有 ZIP 文件
- 使用 ZipArchive.Open() 方法打开现有的 ZIP 文件并将文件名作为参数传递
- 使用 AddAllFromDirectory() 方法在 ZIP 中添加文件并将目录路径作为附件传递
- 使用 SaveTo() 方法保存文件,并将输出路径作为第一个参数,将 CompressionType 作为第二个参数
将文件添加到现有 ZIP 存档 - C#
// open existing ZIP file
ZipArchive archive = ZipArchive.Open("test.zip");
// add samples files in it
archive.AddAllFromDirectory("\\sample");
// save file
archive.SaveTo("sample.zip", CompressionType.Deflate);