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) { ...
随机推荐
- spring 手动添加 bean 到容器,例子 :多数据源配置
package com.thunisoft.spsjsb.config.db.decrypt; import com.alibaba.druid.pool.DruidDataSource; impor ...
- 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库——安装配置NTP服务,保证集群时间保持同步
一.所有节点上使用yum安装配置NTP服务yum install ntp -y 二.选定一台节点作为NTP server, 192.168.58.11修改/etc/ntp.conf vim /etc/ ...
- [Laravel] 08 - Auth & Data Migration
登录注册框架 一.加载Auth模块 Step 1, 安装Auth模块 生成相关 laravel 框架内部的代码模块: $ php artisan make:auth 自动添加了路由代码 在larave ...
- 九、K3 WISE 开发插件《工业单据老单序时薄插件工具栏按钮开发实例》
=============================== 目录: 1.添加工具栏按钮 2.查询被添加工具栏按钮的业务单据的FMenuID和FID 3.添加工具栏按钮和业务单据的映射关系 4.工具 ...
- WPS 2019 How To Create New Sheets For Each Row In Excel?
https://www.extendoffice.com/documents/excel/3197-excel-create-new-sheet-for-each-row.html How To C ...
- centos7 安装zookeeper3.4.8集群
1.下载上传文件到centos中 2.解压文件夹 3.cd conf 文件下,cp zoo_sample.cfg zoo.cfg 4.vim zoo.cfg # The number of mil ...
- docker 搭建ntp服务器
背景 在搭建etcd集群时,如果主机时间相差太多会出现同步错误,如果外部网络不可用时,需要使用内部的ntp服务器同步时间. 构建ntp镜像 创建Dockerfile # usage: # docker ...
- 使用jenkins pipeline,并发selenium测试 --- 你值得了解
一.契机 相信很多使用selenium进行UI测试,再对接jenkins时,都是简单的在jenkins上将命令输入就完事了. 但是,相信你一定会遇到以下问题: 1.你需要同时跑不同文件或不同类的用例, ...
- wpgcms---导航高亮显示
在使用wpgcms做项目的时候,有时候三级栏目默认是没有高亮显示的一级导航的,例如:文章详情页要对应的文章栏目进行高亮显示,三级单篇页要对应栏目是高亮显示.具体做法是: 首先看获取导航的方式: {% ...
- Spark Multilayer perceptron classifier (MLPC)多层感知器分类器
多层感知器分类器(MLPC)是基于前馈人工神经网络(ANN)的分类器. MLPC由多个节点层组成. 每个层完全连接到网络中的下一层. 输入层中的节点表示输入数据. 所有其他节点,通过输入与节点的权重w ...