0. 判断是否安装WinRAR

public static bool ExistsRar(out String winRarPath)
{winRarPath = String.Empty;//通过Regedit(注册表)找到WinRar文件var registryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe");if (registryKey == null) return false;//未安装//registryKey = theReg;可以直接返回Registry对象供会面操作winRarPath = registryKey.GetValue("").ToString();//这里为节约资源,直接返回路径,反正下面也没用到registryKey.Close();//关闭注册表return !String.IsNullOrEmpty(winRarPath);
}

1.压缩文件

a -afzip -m0 -ep1 -r “压缩后文件名” “待压缩文件所在路径”
WinRAR命令行
//[a] 添加到压缩文件
//afzip 执行zip压缩方式,方便用户在不同环境下使用。
//(取消该参数则执行rar压缩)
//-m0 存储 添加到压缩文件时不压缩文件。共6个级别【0-5】,值越大效果越好,也越慢
//ep1 依名称排除主目录(生成的压缩文件不会出现不必要的层级)
//r 修复压缩档案
//t 测试压缩档案内的文件
//as 同步压缩档案内容
//-p 给压缩文件加密码方式为:-p123456

/// <param name="foderPath">文件夹路径</param>
/// <param name="rarPath">生成压缩文件的路径</param>
/// <param name="rarFile">生成压缩文件的文件名</param>public static void CompressRar(String foderPath, String rarFile)
{try{String winRarPath = null;//验证WinRar是否安装。if (!ExistsRar(out winRarPath)) return;//获得文件的DirString rarPath = Path.GetDirectoryName(rarFile);//如果生成路径不存在则创建if (!Directory.Exists(rarPath)){Directory.CreateDirectory(rarPath);                }var pathInfo = String.Format("a -afzip -ibck -m0 -ep1 -r \"{0}\" \"{1}\"", rarFile, foderPath);#region WinRar 用到的命令注释//[a] 添加到压缩文件//afzip 执行zip压缩方式,方便用户在不同环境下使用。//(取消该参数则执行rar压缩)//-m0 存储 添加到压缩文件时不压缩文件。共6个级别【0-5】,值越大效果越好,也越慢//ep1 依名称排除主目录(生成的压缩文件不会出现不必要的层级)//r 修复压缩档案//t 测试压缩档案内的文件//as 同步压缩档案内容 //-p 给压缩文件加密码方式为:-p123456#endregion//打包文件存放目录var process = new Process{StartInfo = new ProcessStartInfo{FileName = winRarPath,//执行的文件名Arguments = pathInfo,//需要执行的命令UseShellExecute = false,//使用Shell执行WindowStyle = ProcessWindowStyle.Hidden,//隐藏窗体WorkingDirectory = rarPath,//rar 存放位置CreateNoWindow = false,//不显示窗体},};process.Start();//开始执行process.WaitForExit();//等待完成并退出process.Close();//关闭调用 cmd 的什么什么}catch (Exception ex){throw ex;}
}

解压文件

 /// <param name="unRarPath">文件夹路径</param>
/// <param name="rarPath">压缩文件的路径</param>
/// <param name="rarName">压缩文件的文件名</param>
/// <returns></returns>
public static String UnCompressRar(String rarFile, String unRarPath)
{string rarName = Path.GetFileNameWithoutExtension(rarFile);string rarPath = Path.GetDirectoryName(rarFile);try{String winRarPath = null;//验证压缩文件是否存在if (!ExistsRar(out winRarPath)) return "";if (Directory.Exists(unRarPath) == false){Directory.CreateDirectory(unRarPath);}var pathInfo = "x " + rarName + " " + unRarPath + " -y -ibck";var process = new Process{StartInfo = new ProcessStartInfo{FileName = winRarPath,//执行的文件名Arguments = pathInfo,//需要执行的命令UseShellExecute = false,//使用Shell执行WindowStyle = ProcessWindowStyle.Hidden,//隐藏窗体WorkingDirectory = rarPath,//rar 存放位置CreateNoWindow = false,//不显示窗体},};process.Start();//开始执行process.WaitForExit();//等待完成并退出process.Close();//关闭调用 cmd 的什么什么}catch (Exception ex){throw ex;}return unRarPath;
}

C#调用WinRAR解压、压缩文件相关推荐

  1. php tp5在线解压压缩文件

    php tp5在线解压压缩文件 没啥原理,直接上代码把 解压方法 /*** 解压zip文件到指定目录* @param {string} $filepath: 文件路径* @param {string} ...

  2. 设置winrar解压war文件

    设置winrar解压war文件 前言 设置winrar解压的格式 1. 打开WinRAR, 选项->设置 2. 点击"集成" 3. 效果展示 前言 压缩软件改用了winrar ...

  3. R语言使用unzip函数解压压缩文件(Extract or List Zip Archives)

    R语言使用unzip函数解压压缩文件(Extract or List Zip Archives) 目录 R语言使用unzip函数解压压缩文件(Extract or List Zip Archives) ...

  4. python批量解压文件_python 批量解压压缩文件的实例代码

    下面给大家介绍python 批量解压压缩文件的实例代码,代码如下所述: #/usr/bin/python#coding=utf-8import os,sys import zipfile open_p ...

  5. C# 调用WinRar解压压缩包

    using System; using System.Collections.Generic; using System.Text; using System.IO; using Microsoft. ...

  6. centos 安装并使用rar解压压缩文件

    下载 下载自己的版本,下边以64位的为例: wget http://www.rarlab.com/rar/rarlinux-x64-5.6.1.tar.gz 解压 到文件夹/usr/local/rar ...

  7. python调用winrar解压_批量文件解压缩脚本(Python3.5 + WinRAR)

    import os s = os.sep #全局变量 List_Err = [] #dirroot = "D:" + s + "实验报告" + s #要遍历的目 ...

  8. 使用shell脚本一键式解压压缩文件

    话不多说,先上代码: #!/bin/bash cd /opt/software ----文件的目录位置 count=`ls -l | grep '^-' | wc -l` ----保存当前目录下的文件 ...

  9. 【Delphi】从内存读取或解压压缩文件(RAR、ZIP、TAR、GZIP等)(二)

    D7zTool是一个基于7-zip库开发的解压缩示例程序,除了应用程序本身,仅包含一个7z.dll 主要界面: D7zTool示例程序demo的pas源码 unit Unit1;interfaceus ...

最新文章

  1. vue打包后element-ui部分样式(图标)异常问题
  2. python3装饰器的高级使用
  3. 从 Android 静音看正确的查找 bug 的姿势
  4. Excel 如何根据单元格中的值设立不同的颜色(或渐变)?(222)
  5. 737 页《吴恩达深度学习核心笔记》发布,黄海广博士整理!
  6. 【深度学习】解决物体检测中的小目标问题
  7. 看懂别人的代码,只是成为高效程序员的第一步!
  8. 杭州python靠谱吗_杭州Python高薪就业靠谱吗?
  9. python之禅中文原文_Python之禅 - osc_ns45oss7的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. Android 开发者们,如何使用 Python 来扩展 adb 命令?
  11. macOS下R语言入门操作教程
  12. Blender2.9入门篇
  13. 可以丢掉SGD和Adam了,新的深度学习优化器Ranger:RAdam + LookAhead强强结合
  14. Arthas--深入排查java进程消耗CPU或内存过高问题
  15. mcdf项目验证总结-SV
  16. css实现人走路效果,纯css实现机器人走路动画
  17. x3+y3+z3=3
  18. 安装系统正在为首次使用计算机ghost,win7系统安装程序显示正在为首次使用计算机做准备的解决方法...
  19. 语文字典计算机基础术语,2017年北京师范大学汉语文化学院893专业综合三(古代汉语、计算机基础)考研导师圈点必考题汇编...
  20. CAS 统一身份认证(一):系统编译与运行

热门文章

  1. JUnit5学习之七:参数化测试(Parameterized Tests)进阶
  2. 如何调整照片分辨率dpi?提高图片分辨率的方法
  3. 二分查找算法详解(附代码)
  4. html 弃用浏览器记住密码,html页面禁止自动填充浏览器记住的密码
  5. Linux虚拟化技术
  6. sort函数 sorted函数 超详细用法
  7. HTML5系列代码:设置页面背景图像
  8. miui android o内测版,小米MIUI更新安卓O/P适配进度:红米Note5等机型Q1进入内测
  9. 用USB安装XP -- 电脑店
  10. 撕裂者cpu三代文件服务器,AMD 两年 CPU 线路图曝出,10月发第三代线程撕裂者