手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#调用WinRar执行rar、zip压缩的方法
C#调用WinRar执行rar、zip压缩的方法
摘要:本文实例讲述了C#调用WinRar执行rar、zip压缩的方法。分享给大家供大家参考。具体如下:判断系统是否安装了winrar//////验...

本文实例讲述了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(@"SOFTWAREMicrosoftWindowsCurrentVersionApp PathsWinRAR.exe"); if (registryKey == null) return false;//未安装 //registryKey = theReg;可以直接返回Registry对象供会面操作 winRarPath = registryKey.GetValue("").ToString(); //这里为节约资源,直接返回路径,反正下面也没用到 registryKey.Close();//关闭注册表 return !String.IsNullOrEmpty(winRarPath); }

压缩

/// <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; } }

解压

/// <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; }

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

【C#调用WinRar执行rar、zip压缩的方法】相关文章:

在Winform动态启动、控制台命令行的方法

C#中如何执行存储过程方法

C#发送HttpPost请求来调用WebService的方法

C#连接MySql数据库的方法

c# 获取数据库中所有表名称的方法

C# javascript 读写Cookie的方法

C#图片压缩的实现方法

C#调用Java类的实现方法

c#简单读取文本的实例方法

C# 改变无边框窗体尺寸大小的方法

精品推荐
分类导航