C#,VB.net有什么类库可以内存解压rar中某个子文件

在.NET生态中,可通过以下类库实现内存解压RAR中的特定子文件:

第三方库解决方案

  1. SharpCompress

    支持RAR5/RAR格式的内存解压,通过IReader接口可逐条目读取压缩包内容,直接提取指定文件到内存流。典型用法包括RarArchive.OpenEntry()方法配合MemoryStream处理目标文件。

  2. SevenZipSharp

    基于7z.dll封装,提供SevenZipExtractor类,支持通过ExtractFile()方法指定文件名提取到内存,需依赖7z动态链接库。

  3. Unrar.NET

    专为RAR格式设计的库,使用UnrarArchive类可定位特定条目并解压到内存缓冲区,适合处理加密或分卷RAR文件。

原生与扩展方案

  • System.IO.Compression ‌命名空间原生仅支持ZIP格式,需结合第三方库实现RAR功能。若需混合处理,可先用第三方库解压RAR到内存,再通过ZipArchive处理中间结果。

代码示例(SharpCompress):

cs 复制代码
using SharpCompress.Archives.Rar;
using System.IO;

var memoryStream = new MemoryStream();
using (var archive = RarArchive.Open(File.OpenRead("test.rar"))) {
    var entry = archive.Entries.First(e => e.Key == "target.txt");
    entry.WriteTo(memoryStream);
}

优先推荐SharpCompress或SevenZipSharp,两者均支持流式处理且维护活跃

相关推荐
小猿姐1 小时前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
SkyWalking中文站13 小时前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站1 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ2 天前
Kubeneters HA Cluster部署
运维
江华森2 天前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森2 天前
Matplotlib 数据绘图基础入门
运维
江华森2 天前
NumPy 数值计算基础入门
运维
乘云数字DATABUFF6 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--8 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森8 天前
动手实战学 Docker — 从零到集群编排完全指南
运维