本文实例讲述了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); }
压缩
/// <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命令进行压缩和解压缩操作的实现方法,包括了C#使用WinRar命令进行压缩和解压缩操作的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用WinRar命令进行压缩和解压缩操作的实现方法。分享给大家供大家参考,具体如下: 更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算
本文向大家介绍C#中使用WinRAR实现加密压缩及解压缩文件,包括了C#中使用WinRAR实现加密压缩及解压缩文件的使用技巧和注意事项,需要的朋友参考一下 本次示例主要实现: 1.压缩文件夹及其下文件 2.压缩文件夹下文件 3.压缩文件夹及其下文件为rar 还是 zip 4.解压缩 5.加密压缩及解加密压缩 ----------- 示例代码如下: # re: C# (加密)压缩及解压缩 相关文件夹
问题内容: 我已在网上上下搜索,但仍然找不到上述问题的解决方案。有谁知道为什么,如果可以的话,怎么做? 我得到的错误: 问题答案: 因为使用错误。:)从文档: ZipFile。extractall([path [,Members [,pwd]]]) 将存档中的所有成员提取到当前工作目录。 path指定要提取到的其他目录 。成员是可选的,并且必须是namelist()返回的列表的子集。pwd是用于加
本文向大家介绍C#文件流进行压缩和解压缩的方法,包括了C#文件流进行压缩和解压缩的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#文件流进行压缩和解压缩的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍Python压缩解压缩zip文件及破解zip文件密码的方法,包括了Python压缩解压缩zip文件及破解zip文件密码的方法的使用技巧和注意事项,需要的朋友参考一下 python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件: 将 readability 目录中的文件压缩到脚本所在目录的 readability.zip
我创建了一个zip文件使用java zip实用程序,我有以下目录结构内的zip文件。 测试。txt-文件 迈拉贝尔。lbl-文件 aux-directory(在这个目录中,我有一些其他文件,如下所示) 我的文件。lbl 第一档。文本 这是一个只有代码的“aux”目录,文件下载后可以用7zip打开,并正确显示目录结构。 当我尝试用WinRAR解压文件时,它只解压所有外部目录文件,并显示一条错误消息。