C#最全文件压缩库SharpCompress

前段时候有网友问我,C#文件压缩解压库大多比较单一,有没有支持多种格式的文件压缩解压库。于是查阅资料,找到了SharpCompress文件夹解压组件,它支持多种常见格式,本文将介绍它及它的基本使用。

一、SharpCompress 简介

    SharpCompress是一个开源的C#库,它提供了对常见压缩格式(如Rar, Zip, Tar, Gzip,Bzip2等)的支持。它使用流式API来解压缩和压缩文件,并支持密码保护和多文件压缩。SharpCompress还支持从存档中读取和写入文件元数据,如文件名和修改日期。它适用于桌面应用程序和服务器应用程序。SharpCompress的使用示例如下:.二、SharpCompress在项目中的使用

1、首先在nuget下载

在nuget管理器安装,或者用nuget命令安装,如下图片和安装命令:

C#最全文件压缩库SharpCompress

//安装命令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