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

相关推荐
sheji3416几秒前
【开题答辩全过程】以 基于JAVA的社团管理系统为例,包含答辩的问题和答案
java·开发语言
周杰伦_Jay7 分钟前
【GOFrame】模块化框架与生产级实践
开发语言·gitlab·github
Simon席玉19 分钟前
C++的命名重整
开发语言·c++·华为·harmonyos·arkts
chao18984419 分钟前
MATLAB中的多重网格算法与计算流体动力学
开发语言·算法·matlab
木盏20 分钟前
三维高斯的分裂
开发语言·python
精神小伙就是猛27 分钟前
C# sealed密封 追本溯源
开发语言·c#
真正的醒悟38 分钟前
图解网络35
开发语言·网络·php
大连好光景1 小时前
批量匿名数据重识别(debug记录)
开发语言·python
计算机毕设VX:Fegn08951 小时前
计算机毕业设计|基于Java + vue水果商城系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·课程设计
清水白石0081 小时前
《深入 Celery:用 Python 构建高可用任务队列的实战指南》
开发语言·python