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

相关推荐
liulilittle6 小时前
Linux 下 select 测试函数
linux·服务器·网络·数据库·c++·select·c
luo_guibin7 小时前
Linux系统下OpenSSL升级全流程,新旧版本切换
linux·运维·服务器
7177777 小时前
支持混合云的 DevOps 平台有哪些:主流方案对比与选型指南
运维·devops
看着博客敲代码7 小时前
No space left on device:服务器被 SSH 爆破到日志写满的完整排查与止血
linux·运维·服务器·安全·ssh
编程序的员7 小时前
使用OpenTelemetry来监控Rust应用
运维·rust·monitoring·opentelemetry
极光通讯7 小时前
服务器内存来料检验(IQC)实操:批次追溯、外观判定与上机验证
java·服务器·算法
Raspberry_Pi_官方账号7 小时前
Raspberry Pi Desktop 全面升级,现已登陆 PC 和 Mac
服务器·网络·macos·树莓派·raspberry pi·raspberrypios
实战派K8S&DB7 小时前
TDSQL 核心模块与进程体系
运维·数据库·分布式·sql·mysql
Rooting++7 小时前
用友打包的APP壳子怎么获取SHA1码?
运维·服务器
云飞云共享云桌面8 小时前
降本 + 护图纸:珠海制造装备工厂 SolidWorks 服务器共享设计方案
运维·服务器·制造