rar压缩类
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics; namespace Test
{
public class RAR
{
/// <summary>
/// 解压缩Rar文件
/// </summary>
/// <param name="rarFilePath">rar文件</param>
/// <param name="unrarDestPath">解压到</param>
public static void UnRarFile(string rarFilePath, string unrarDestPath)
{
//组合出需要shell的完整格式
string shellArguments = string.Format("x -o+ \"{0}\" \"{1}\\\"", rarFilePath, unrarDestPath); //用Process调用
using (Process unrar = new Process())
{
unrar.StartInfo.FileName = IOUtils.GetPhysicalPath("/ActiveX/WinRar.exe");
unrar.StartInfo.Arguments = shellArguments;
//隐藏rar本身的窗口
unrar.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
unrar.Start();
//等待解压完成
unrar.WaitForExit();
unrar.Close();
}
} /// <summary>
/// 压缩一个或多个文件
/// </summary>
/// <param name="rarFileName"></param>
/// <param name="fileList"></param>
/// <returns></returns>
public static bool RarFileList(string rarFileName, string fileList)
{
bool returnVal = false;
try
{
string shellArguments = string.Format("u -u -ep -ad \"{0}\" @\"{1}\"", rarFileName, fileList);
ExecuteCommand(shellArguments);
returnVal = true;
}
catch (Exception ex)
{
throw ex;
}
return returnVal;
} /// <summary>
/// 压缩一个目录
/// </summary>
/// <param name="rarFileName"></param>
/// <param name="dirPath"></param>
/// <returns></returns>
public static bool RarDirectory(string rarFileName, string dirPath)
{
bool returnVal = false;
try
{
string shellArguments = string.Format("a -o+ -ep -ad \"{0}\" @\"{1}\"", rarFileName, dirPath);
ExecuteCommand(shellArguments);
returnVal = true;
}
catch (Exception ex)
{
throw ex;
}
return returnVal;
} private static void ExecuteCommand(string CommandArguments)
{
using (Process rar_process = new Process())
{
rar_process.StartInfo.FileName = IOUtils.GetPhysicalPath("/ActiveX/WinRar.exe");
rar_process.StartInfo.Arguments = CommandArguments;
//隐藏rar本身的窗口
rar_process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
rar_process.StartInfo.UseShellExecute = false; try
{
rar_process.Start();
rar_process.WaitForExit();
string ex_message = "";
switch (rar_process.ExitCode)
{
case :// 成功操作。
ex_message = "";
break;
case :// 警告。发生非致命错误。
ex_message = "警告。发生非致命错误。";
break;
case :// 发生致命错误。
ex_message = "发生致命错误。";
break;
case :// 解压时发生 CRC 错误。
ex_message = "解压时发生 CRC 错误。";
break;
case :// 尝试修改一个 锁定的压缩文件。
ex_message = "尝试修改一个 锁定的压缩文件。";
break;
case :// 写错误。
ex_message = "写错误。";
break;
case :// 文件打开错误。
ex_message = "文件打开错误。";
break;
case :// 错误命令行选项。
ex_message = "错误命令行选项。";
break;
case :// 内存不足。
ex_message = "内存不足。";
break;
case :// 文件创建错误。
ex_message = "文件创建错误。";
break;
case :// 用户中断。
ex_message = "用户中断。";
break;
}
if (ex_message != string.Empty)
throw new Exception(ex_message); }
catch (Exception ex)
{
throw ex;
}
finally
{
rar_process.Close();
rar_process.Dispose();
}
}
}
}
}
rar压缩类的更多相关文章
- C# 解压RAR压缩文件
此方法适用于C盘windows文件夹中有WinRAR.exe文件 /// 解压文件(不带密码) RAR压缩程序 返回解压出来的文件数量 /// </summary> /// <par ...
- [原]Sql脚本压缩类。
精简的美丽 /* * Sql脚本压缩类. * 去掉sql语句中多余的空格,以减少sql脚本的文本长度 * * Author : goldli@163.com * DateTime : 2015/07/ ...
- php ZIP压缩类实例分享
php ZIP压缩类实例分享 <?php $zipfiles =array("/root/pooy/test1.txt","/root/pooy/test2.txt ...
- RAR压缩解压命令
RAR压缩解压命令 这几天一直没空更新博客,现在补上: 先介绍一下rar的命令格式及相关参数含义(摘自rar): 用法: rar <命令> -<开关 1> -<开关 ...
- 利用itertools生成密码字典,多线程撞库破解rar压缩文件密码
脚本功能: 利用itertools生成密码字典(迭代器形式) 多线程并发从密码字典中取出密码进行验证 验证成功后把密码写入文件中保存 #!/usr/bin/env python # -*- codin ...
- 关于在linux系统环境下解压rar压缩文件
如果在zip压缩文件,可以使有unzip来进行解压.可以直接使用yum进行下载. 但如果是rar类型压缩文件,使用yum就可能无法直接安装. 要到网址:https://www.rarlab.com/d ...
- Thinkphp js、css压缩类minify
说明:Minify 是用PHP5开发的应用,通过遵循一些Yahoo的优化规则来提高网站的性能.它会合并多个CSS或者JavaScript文件,移除一些不必要的空格和注释,进行gzip压缩,并且会设置浏 ...
- .NET 4.5 中新提供的压缩类
Windows8 的开发已经如火如荼开始了,在 Windows8 中提供的 .NET Framework 已经更新到了 4.5 版,其中又增加了一些新的特性,对压缩文件的支持就是其中之一. 在 4.5 ...
- C#调用RAR压缩与解压
public void RARsave(string rarPatch, string rarFiles,string patch,string rarName) { ...
随机推荐
- 安卓程序代写 网上程序代写[原]Android应用的自动更新模块
软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...
- 5 款最新的 jQuery 图片裁剪插件
这篇文章主要介绍最新的 5 款 jQuery 图片裁剪插件,可以帮助你轻松的实现你网站需要的图像裁剪功能. Cropit Cropit 是一个 jQuery 插件,支持图像裁剪和缩放功能.Cropit ...
- 关于spring boot自动注入出现Consider defining a bean of type 'xxx' in your configuration问题解决方案
搭建完spring boot的demo后自然要实现自动注入来体现spring ioc的便利了,但是我在实施过程中出现了这么一个问题,见下面,这里找到解决办法记录下来,供遇到同样的问题的同僚参考 Des ...
- windows python3.7安装numpy问题的解决方法
我的是win7的系统,去python官网下载python3.7安装 CMD #打开命令窗口 pip install numpy #在cmd中输入 提示 需要c++14.0, 解决办法: 1, 进入h ...
- Pytest运行测试用例的多种方式和调试
测试用例上方使用多个fixtures叠加时,是从下往上进行fixtures调用的.如果是 @pytest.mark.usefixtures('action','a','action2')这种形式,是从 ...
- mysql添加字段并且设置默认值
ALTER TABLE task ADD uploadStatus TINYINT(4) DEFAULT '0' COMMENT '上传状态';
- Pro ASP.NET MVC –第三章 MVC模式
在第七章,我们将创建一个更复杂的ASP.NET MVC示例,但在那之前,我们会深入ASP.NET MVC框架的细节:我们希望你能熟悉MVC设计模式,并且考虑为什么这样设计.在本章,我们将讨论下列内容 ...
- MFC接收命令行参数的三种方法
方法一: CString sCmdline = ::GetCommandLine(); AfxMessageBox(sCmdline); 将获取到 "C:\test\app.exe -1 - ...
- web前端之jQuery
前端的核心编程语言是javaScript,jQuery的出现简化了前端编程,以前看过一些,现在不用大都忘记了,以下总结几个前端技巧. 作为面向对象的脚本语言,注意区别jQuery和DOM对象,及其方法 ...
- G - SDOI
The Annual National Olympic of Information(NOI) will be held.The province of Shandong hold a Select( ...