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

相关推荐
爱奥尼欧5 分钟前
使用libmpv库时如何获取拥有多个分片的视频总播放进度
开发语言·qt·音视频
weixin_421922698 分钟前
C++中的状态模式高级应用
开发语言·c++·算法
工作log8 分钟前
AI点餐助手架构全流程解析
java·开发语言·微服务·架构
二年级程序员10 分钟前
认识与了解 C++
开发语言·c++
AI科技星10 分钟前
从v=c螺旋时空公理出发的引力与电磁常数大统一
c语言·开发语言·人工智能·线性代数·算法·矩阵·数据挖掘
古城小栈11 分钟前
Rust跨平台编译打包 之 三大战役
开发语言·后端·rust
冰暮流星12 分钟前
javascript里面的return语句讲解
开发语言·前端·javascript
TsukasaNZ13 分钟前
代码性能剖析工具
开发语言·c++·算法
J987T13 分钟前
C语言、微机原理等
c语言·开发语言
唐青枫14 分钟前
深入理解 C#.NET Task.Run:调度原理、线程池机制与性能优化
c#·.net