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,两者均支持流式处理且维护活跃

相关推荐
迷迷的k3 小时前
云服务器 + Jenkins 实现项目自动化部署与上线
java·运维·自动化·jenkins
杨云龙UP3 小时前
CentOS 7上离线部署MySQL 8.0.X操作指南(二进制压缩包部署+独立目录部署,不在自动默认路径配置下安装)
linux·运维·服务器·mysql·centos
Ahu_iii3 小时前
【Linux】基础知识与操作汇总:一份给新手的 Linux 学习总结
linux·运维·学习
ZLRRLZ3 小时前
【Linux操作系统】基础开发工具
linux·运维·服务器
float_六七3 小时前
Nginx反向代理核心原理揭秘
运维·nginx·状态模式
羚羊角uou4 小时前
【Linux】线程控制
linux·运维·服务器
ftswsfb4 小时前
Docker进阶-管理和应用
运维·docker·容器
1白天的黑夜14 小时前
Linux(4)|入门的开始:Linux基本指令(4)
linux·运维·服务器·centos
GreatSQL社区5 小时前
GreatSQL 优化技巧:最值子查询与窗口函数相互转换
java·服务器·数据库