700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C# 客户端rar/zip文件解压缩

C# 客户端rar/zip文件解压缩

时间:2021-05-02 16:11:18

相关推荐

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($" -p{pwd}");sb.Append(isCover ? " -o+" : " -o-");sb.Append($" \"{pathRar}\"");sb.Append($" \"{deDir}\"");sb.Append(" -y");string winRarPath = $@"{AppDomain.CurrentDomain.BaseDirectory}Winrar\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;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。