C# 客户端rar/zip文件解压缩
Posted Jia_ShengJie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 客户端rar/zip文件解压缩相关的知识,希望对你有一定的参考价值。
说明:
(1)下载winrar.exe,安装到指定路径,例如:D:\\WINRAR,之后把安装的文件夹(D:\\WINRAR)拷贝到应用程序根目录;
(2)具体方法如下(注意方法中的路径):
/// <summary>
/// 解压RAR和ZIP文件(需存在Winrar.exe(项目根目录存在 winrar.exe)
/// </summary>
/// <param name="pathRar">压缩文件绝对路径(包括文件名称)</param>
/// <param name="deDir">解压目录</param>
/// <param name="errInfo">异常信息</param>
/// <param name="pwd">解压密码</param>
/// <param name="isCover">所解压的文件是否会覆盖已存在的文件(如果不覆盖,所解压出的文件和已存在的相同名称文件不会共同存在,只保留原已存在文件)</param>
/// <returns>true(解压成功);false(解压失败)</returns>
public static bool DeCompressRarOrZip(string pathRar, string deDir, out string errInfo, string pwd = "", bool isCover = true)
errInfo = "";
try
if (!Directory.Exists(deDir))
Directory.CreateDirectory(deDir);
StringBuilder sb = new StringBuilder();
sb.Append(" x");
if (!string.IsNullOrWhiteSpace(pwd))
sb.Append($" -ppwd");
sb.Append(isCover ? " -o+" : " -o-");
sb.Append($" \\"pathRar\\"");
sb.Append($" \\"deDir\\"");
sb.Append(" -y");
string winRarPath = $@"AppDomain.CurrentDomain.BaseDirectoryWinrar\\WinRAR.exe";
using (Process pro = new Process())
ProcessStartInfo psInfo = new ProcessStartInfo
//重定向输入(一定是true)
RedirectStandardInput = true,
//重定向输出
RedirectStandardOutput = true,
RedirectStandardError = true,
//不使用系统shell外壳程序启动
UseShellExecute = false,
//EXE路径
FileName = winRarPath,
//命令
Arguments = sb.ToString(),
//不创建窗体
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden
;
pro.StartInfo = psInfo;
pro.Start();
pro.WaitForExit();
int code = pro.ExitCode;
return code == 0;
catch (Exception ex)
errInfo = $"解压失败。\\r\\n详细信息: ex.Message";
return false;
以上是关于C# 客户端rar/zip文件解压缩的主要内容,如果未能解决你的问题,请参考以下文章
[Android]压缩解压工具ZArchiver Pro高级直装版