C# 通过SharpCompress.Archives.Rar解压RaR文件

csharp 复制代码
	/// <summary>
	/// 解压一个Rar文件
	/// </summary>
	/// <param name="RarFile">需要解压的Rar文件(绝对路径)</param>
	/// <param name="TargetDirectory">解压到的目录</param>
	/// <param name="OverWrite">是否覆盖已存在的文件</param>
	public static void UnRar(string RarFile, string TargetDirectory, bool OverWrite = true)
	{
		//如果解压到的目录不存在,则报错
		if (!System.IO.Directory.Exists(TargetDirectory))
		{
			throw new System.IO.FileNotFoundException("指定的目录: " + TargetDirectory + " 不存在!");
		}
		using (var archive = SharpCompress.Archives.Rar.RarArchive.Open(RarFile))
		{
			foreach (var entry in archive.Entries)
			{
				if (!entry.IsDirectory)
				{
					entry.WriteToDirectory(TargetDirectory, new SharpCompress.Common.ExtractionOptions()
					{
						ExtractFullPath = true,
						Overwrite = OverWrite
					});
				}
			}
		}
	}

本机测试结果:

目前来看这种解压方式对于电脑有没有安装rar压缩软件并没有要求

(PS:我测试的电脑上安装的是7-zip,没有安装WinRaR软件)

相关推荐
大锦终13 分钟前
【C++11】智能指针
开发语言·c++
Dovis(誓平步青云)25 分钟前
探索C++标准模板库(STL):String接口实践+底层的模拟实现(中篇)
开发语言·c++·经验分享·笔记·stl·string
码观天工33 分钟前
.NET AI 生态关键拼图:全面解读 AI Extensions 和 Vector Extensions 如何重塑.NET开发生态
ai·c#·.net·向量数据库
why15137 分钟前
5.28 后端面经
开发语言·后端·golang
编程有点难39 分钟前
Python训练打卡Day35
开发语言·python
oioihoii43 分钟前
C++23:std::print和std::println格式化输出新体验
java·开发语言·c++23
绿龙术士1 小时前
.NET ORM开发手册:基于SqlSugar的高效数据访问全攻略
sql·c#·.net
请你喝好果汁6411 小时前
indel_snp_ssr_primer
大数据·开发语言·scala
AgilityBaby1 小时前
UE5 C++动态调用函数方法、按键输入绑定 ,地址前加修饰符&
开发语言·c++·3d·ue5·游戏引擎
凌佚1 小时前
在飞牛nas系统上部署gitlab
java·开发语言·gitlab