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

相关推荐
是店小二呀11 小时前
openGauss进阶:使用DBeaver可视化管理与实战
开发语言·人工智能·yolo
万粉变现经纪人11 小时前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·人工智能·python·pycharm·bug·pip
U***e6312 小时前
JavaScript数据分析
开发语言·javascript·数据分析
Cx330❀12 小时前
C++ map 全面解析:从基础用法到实战技巧
开发语言·c++·算法
1***Q78412 小时前
Python增强现实案例
开发语言·python·ar
枫叶丹412 小时前
openGauss:面向数字时代的下一代企业级开源关系型数据库
开发语言·数据库·开源·自动化
Demon--hx14 小时前
[C++]迭代器
开发语言·c++
BanyeBirth14 小时前
C++窗口问题
开发语言·c++·算法
q***062915 小时前
PHP进阶-在Ubuntu上搭建LAMP环境教程
开发语言·ubuntu·php
郝学胜-神的一滴18 小时前
Qt的QSlider控件详解:从API到样式美化
开发语言·c++·qt·程序人生