• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#调用WinRar执行rar、zip压缩的方法

C#调用WinRar执行rar、zip压缩的方法

作者:令狐不聪 字体:[增加 减小] 来源:互联网 时间:2017-05-28

令狐不聪 通过本文主要向大家介绍了winrarsetup.rar,winrar 压缩文件 rar,winrar.rar,winrar 64位rar,winrar软件解压rar/7z等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#调用WinRar执行rar、zip压缩的方法。分享给大家供大家参考。具体如下:

判断系统是否安装了winrar

/// <summary>
/// 验证WinRar是否安装。
/// </summary>
/// <returns>true:已安装,false:未安装</returns>
private 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);
}
</div>

压缩

/// <summary>
/// 生成Zip
/// </summary>
/// <param name="path">文件夹路径</param>
/// <param name="rarPath">生成压缩文件的路径</param>
/// <param name="rarName">生成压缩文件的文件名</param>
public static void CompressRar(String path, String rarPath, String rarName)
{
 try
 {
  String winRarPath = null;
  if (!ExistsRar(out winRarPath)) return;
  //验证WinRar是否安装。
  var pathInfo = String.Format("a -afzip -m0 -ep1 \"{0}\" \"{1}\"", rarName, path);
  #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;
 }
}
</div>

解压

/// <summary>
/// 解压
/// </summary>
/// <param name="unRarPath">文件夹路径</param>
/// <param name="rarPath">压缩文件的路径</param>
/// <param name="rarName">压缩文件的文件名</param>
/// <returns></returns>
public static String UnCompressRar(String unRarPath, String rarPath, String rarName)
{
 try
 {
  String winRarPath = null;
  if (!ExistsRar(out winRarPath)) return "";
  //验证WinRar是否安装。
  if (Directory.Exists(unRarPath) == false)
  {
   Directory.CreateDirectory(unRarPath);
  }
  var pathInfo = "x " + rarName + " " + unRarPath + " -y";
  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;
}
</div>

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#调用WinRar执行rar、zip压缩的方法

相关文章

  • 2017-05-28C#调用python文件执行
  • 2017-05-28C#实现动态生成静态页面的类详解
  • 2017-05-28c#使用S22.Imap收剑灵激活码邮件代码示例(imap收邮件)
  • 2017-05-28c#实现ini文件读写类分享
  • 2017-05-28C#实现带搜索功能的ComboBox
  • 2017-05-28深入c# GDI+简单绘图的具体操作步骤(一)
  • 2017-05-28C# 实现计算生辰八字
  • 2017-05-28基于使用BeginInvoke,EndInvoke异步调用委托的实现代码
  • 2017-05-28c# 委托和事件实例学习
  • 2017-05-28C#判断网站是否能访问或者断链的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现ProperTyGrid自定义属性的方法
    • C#向图片添加水印的两种不同场景与解决方法
    • 浅析C# 使用Process调用外部程序中所遇到的参数问题
    • C#中DataTable实现行列转换的方法
    • C#实现打造气泡屏幕保护效果
    • C#关于类的只读只写属性实例分析
    • C#实现3D效果完整实例
    • C#中的Internal关键字小结
    • c#中executereader执行查询示例分享
    • 学习Winform分组类控件(Panel、groupBox、TabControl)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有