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

相关推荐
摇滚侠几秒前
Mybatis 面试题 真正的 offer 偏方 Java 基础 Java 高级
java·开发语言·mybatis
林熙蕾LXL1 分钟前
进程处理操作
开发语言·c++·算法
兩尛4 分钟前
C++多线程编程
开发语言·jvm·c++
weixin_4280053018 分钟前
C#调用 AI学习从0开始-第1阶段(基础与工具)-第4天CoT思维链学习
开发语言·学习·ai·c#·cot
砍材农夫19 分钟前
物联网 基于netty构建mqtt服务demo演示
开发语言·物联网·php
JAVA面经实录91722 分钟前
Java 并发工具类
java·大数据·开发语言
吃好睡好便好23 分钟前
在Matlab中绘制变半径柱面图
开发语言·人工智能·学习·算法·matlab
驭渊的小故事23 分钟前
Java数据结构集合框架(顺序表(ArrayList)的详细解析)(两千字详细解析)
java·开发语言
hanbr23 分钟前
Qt:事件处理与绘图详解
开发语言·数据库·qt
政沅同学26 分钟前
C# TCP通讯(客户端)
网络·tcp/ip·c#