前段时候有网友问我,C#文件压缩解压库大多比较单一,有没有支持多种格式的文件压缩解压库。于是查阅资料,找到了SharpCompress文件夹解压组件,它支持多种常见格式,本文将介绍它及它的基本使用。
一、SharpCompress 简介
SharpCompress是一个开源的C#库,它提供了对常见压缩格式(如Rar, Zip, Tar, Gzip,Bzip2等)的支持。它使用流式API来解压缩和压缩文件,并支持密码保护和多文件压缩。SharpCompress还支持从存档中读取和写入文件元数据,如文件名和修改日期。它适用于桌面应用程序和服务器应用程序。SharpCompress的使用示例如下:.二、SharpCompress在项目中的使用
1、首先在nuget下载
在nuget管理器安装,或者用nuget命令安装,如下图片和安装命令:
//安装命令
Install-Package SharpCompress
2、解压缩ZIP文件:
解压zip文件的代码如下:
#region SharpCompress使用
string zipFilePath = "E:\\filefolder.zip";
string extractPath = "E:\\filefolder";
using (var archive = ZipArchive.Open(zipFilePath))
{
foreach (var entry in archive.Entries)
{
if (!entry.IsDirectory)
{
entry.WriteToDirectory(extractPath, new ExtractionOptions()
{
ExtractFullPath = true,
Overwrite = true
});
}
}
}
#endregion
2、压缩文件夹到ZIP文件:
string folderPath = "E:\\filefolder";
string zipFilePath = "E:\\filefolder.zip";
using (var archive = ZipArchive.Create())
{
archive.AddAllFromDirectory(folderPath);
archive.SaveTo(zipFilePath, CompressionType.Deflate);
}
3、操作RAR文件:
SharpCompress支持解压rar文件,可以使用RarArchive类来打开rar文件,然后使用Entries属性来访问文件和文件夹。下面是一个示例代码,该代码将rar文件中的所有文件解压缩到指定的文件夹中:
using (var archive = RarArchive.Open(rarFilePath))
{
foreach (var entry in archive.Entries)
{
if (!entry.IsDirectory)
{
entry.WriteToDirectory(extractPath, new ExtractionOptions()
{
ExtractFullPath = true,
Overwrite = true
});
}
}
}
-
rarFilePath是rar文件的路径
-
extractPath是解压缩文件的目标文件夹路径
entry.WriteToDirectory方法将文件解压缩到指定的文件夹中,ExtractionOptions可以用来控制解压缩的选项,如是否保留原始路径等。
请注意,如果rar文件是加密的,那么需要使用RarArchive.Open(rarFilePath, "password")来打开rar文件并传入密码。
三、结语
本文介绍了C#最全文件压缩库SharpCompress,并用ZIP、RAR案例展示了它的使用,希望能帮助到大家,同时欢迎大家留言和点赞。
github地址:https://github.com/adamhathcock/sharpcompress