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

相关推荐
霸王大陆2 分钟前
《零基础学 PHP:从入门到实战》模块十:从应用到精通——掌握PHP进阶技术与现代化开发实战-3
开发语言·php
进击的荆棘26 分钟前
C++起始之路——类和对象(上)
开发语言·c++
老朱佩琪!27 分钟前
在Unity中实现状态机设计模式
开发语言·unity·设计模式
csdn_aspnet28 分钟前
C# .NETCore json字符串压缩为一行
c#·json·.netcore
斯内科29 分钟前
C#验证拉马努金圆周率公式
c#·拉马努金圆周率
FuckPatience29 分钟前
C# BinarySearch 的返回值
开发语言·数据结构·c#
尼古拉斯·纯情暖男·天真·阿玮33 分钟前
[JavaEE初阶] 进程和线程的区别和联系
java·开发语言
沐知全栈开发1 小时前
TypeScript Array(数组)
开发语言
陶陶name1 小时前
Metal Compute Pipeline:Metal-C++ 环境配置与简单算子实现
开发语言·c++
认真敲代码的小火龙1 小时前
【JAVA项目】基于JAVA的宿舍管理系统
java·开发语言·课程设计