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软件)

相关推荐
雨大王5122 分钟前
数字孪生如何助力汽车零部件企业实现柔性生产?
开发语言·人工智能·python
hqwest4 分钟前
码上通QT实战05--绘制导航按钮
开发语言·css·qt·自定义控件·qframe·布局ui
AI爱好者20205 分钟前
智能优化算法2025年新书推荐——《智能优化算法及其MATLAB实例(第4版)》
开发语言·算法·matlab
初子无爱6 分钟前
Java接入支付宝沙箱支付教程
java·开发语言
duanyuehuan14 分钟前
js 解构赋值
开发语言·前端·javascript
wearegogog12314 分钟前
基于试射法和龙格库塔法的层状介质射线追踪MATLAB实现
开发语言·matlab
木木木一18 分钟前
Rust学习记录--C4 Rust所有权
开发语言·学习·rust
悟能不能悟20 分钟前
前端调用a服务,a服务将请求用controller+openfeign调用b服务,接口参数中有header参数和body,a服务应该怎么设置,才简单
java·开发语言·前端
2501_9418859620 分钟前
从接口演化到系统自治的互联网工程语法重构与多语言实践思路拆解分享文
java·开发语言
yong999021 分钟前
MATLAB自回归预测模型实现方案
开发语言·matlab·回归