C#解压、压缩RAR文件
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Microsoft.Win32;
using System.Diagnostics; namespace CommonHelper
{
public class WinRARHelper
{
/// <summary>
/// 是否安装了Winrar
/// </summary>
/// <returns></returns>
static public bool Exists()
{
RegistryKey the_Reg =
Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe");
return !string.IsNullOrEmpty(the_Reg.GetValue("").ToString());
} /// <summary>
/// 打包成Rar
/// </summary>
/// <param name="patch"></param>
/// <param name="rarPatch"></param>
/// <param name="rarName"></param>
public void CompressRAR(string patch, string rarPatch, string rarName)
{
string the_rar;
RegistryKey the_Reg;
object the_Obj;
string the_Info;
ProcessStartInfo the_StartInfo;
Process the_Process;
try
{
the_Reg =
Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe");
the_Obj = the_Reg.GetValue("");
the_rar = the_Obj.ToString();
the_Reg.Close();
the_rar = the_rar.Substring(, the_rar.Length - );
Directory.CreateDirectory(patch);
//命令参数
//the_Info = " a " + rarName + " " + @"C:Test?70821.txt"; //文件压缩
the_Info = " a " + rarName + " " + patch + " -r"; ;
the_StartInfo = new ProcessStartInfo();
the_StartInfo.FileName = the_rar;
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
//打包文件存放目录
the_StartInfo.WorkingDirectory = rarPatch;
the_Process = new Process();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
the_Process.WaitForExit();
the_Process.Close();
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 解压
/// </summary>
/// <param name="unRarPatch"></param>
/// <param name="rarPatch"></param>
/// <param name="rarName"></param>
/// <returns></returns>
public string unCompressRAR(string unRarPatch, string rarPatch, string rarName)
{
string the_rar;
RegistryKey the_Reg;
object the_Obj;
string the_Info; try
{
the_Reg =
Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe");
the_Obj = the_Reg.GetValue("");
the_rar = the_Obj.ToString();
the_Reg.Close();
//the_rar = the_rar.Substring(1, the_rar.Length - 7); if (Directory.Exists(unRarPatch) == false)
{
Directory.CreateDirectory(unRarPatch);
}
the_Info = "x " + rarName + " " + unRarPatch + " -y"; ProcessStartInfo the_StartInfo = new ProcessStartInfo();
the_StartInfo.FileName = the_rar;
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
the_StartInfo.WorkingDirectory = rarPatch;//获取压缩包路径 Process the_Process = new Process();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
the_Process.WaitForExit();
the_Process.Close();
}
catch (Exception ex)
{
throw ex;
}
return unRarPatch;
}
}
} //RAR参数: //一、压缩命令
//1、将temp.txt压缩为temp.rarrar a temp.rar temp.txt
//2、将当前目录下所有文件压缩到temp.rarrar a temp.rar *.*
//3、将当前目录下所有文件及其所有子目录压缩到temp.rarrar a temp.rar *.* -r
//4、将当前目录下所有文件及其所有子目录压缩到temp.rar,并加上密码123rar a temp.rar *.* -r -p123 //二、解压命令
//1、将temp.rar解压到c:\temp目录rar e temp.rar c:\temprar e *.rar c:\temp(支持批量操作)
//2、将temp.rar解压到c:\temp目录,并且解压后的目录结构和temp.rar中的目录结构一 //压缩目录test及其子目录的文件内容
//Wzzip test.zip test -r -P
//WINRAR A test.rar test -r //删除压缩包中的*.txt文件
//Wzzip test.zip *.txt -d
//WinRAR d test.rar *.txt //刷新压缩包中的文件,即添加已经存在于压缩包中但更新的文件
//Wzzip test.zip test -f
//Winrar f test.rar test //更新压缩包中的文件,即添加已经存在于压缩包中但更新的文件以及新文件
//Wzzip test.zip test -u
//Winrar u test.rar test //移动文件到压缩包,即添加文件到压缩包后再删除被压缩的文件
//Wzzip test.zip -r -P -m
//Winrar m test.rar test -r //添加全部 *.exe 文件到压缩文件,但排除有 a或b
//开头名称的文件
//Wzzip test *.exe -xf*.* -xb*.*
//WinRAR a test *.exe -xf*.* -xb*.* //加密码进行压缩
//Wzzip test.zip test
//-s123。注意密码是大小写敏感的。在图形界面下打开带密码的压缩文件,会看到+号标记(附图1)。
//WINRAR A test.rar test -p123
//-r。注意密码是大小写敏感的。在图形界面下打开带密码的压缩文件,会看到*号标记(附图2)。 //按名字排序、以简要方式列表显示压缩包文件
//Wzzip test.zip -vbn
//Rar l test.rar //锁定压缩包,即防止未来对压缩包的任何修改
//无对应命令
//Winrar k test.rar //创建360kb大小的分卷压缩包
//无对应命令
//Winrar a -v360 test //带子目录信息解压缩文件
//Wzunzip test -d
//Winrar x test -r //不带子目录信息解压缩文件
//Wzunzip test
//Winrar e test //解压缩文件到指定目录,如果目录不存在,自动创建
//Wzunzip test newfolder
//Winrar x test newfolder //解压缩文件并确认覆盖文件
//Wzunzip test -y
//Winrar x test -y //解压缩特定文件
//Wzunzip test *.txt
//Winrar x test *.txt //解压缩现有文件的更新文件
//Wzunzip test -f
//Winrar x test -f //解压缩现有文件的更新文件及新文件
//Wzunzip test -n
//Winrar x test -u //批量解压缩文件
//Wzunzip *.zip
//WinRAR e *.rar
C#解压、压缩RAR文件的更多相关文章
- ubuntu解压/压缩rar文件
一般通过默认安装的ubuntu是不能解压rar文件的,只有在安装了rar解压工具之后,才可以解压.其实在ubuntu下安装rar解压工具是非常简单的,只需要两个步骤就可以迅速搞定.ubuntu 下ra ...
- linux命令解压压缩rar文件
一.widonds下打包rar文件并上传 yum install lrzsz rz test.rar 二.下载并安装rar软件 2.1 下载 mkdir -p /home/oldboy/tools c ...
- linux命令解压压缩rar文件的详细步骤
参考文件:https://www.cnblogs.com/qinglin/p/9007939.html
- linux下解压压缩rar文件
http://download.csdn.net/detail/hnust_xiehonghao/6679893 下载地址 1. 下载软件 以rarlinux-3.8.0 for linux为例, ...
- centos7解压压缩zip文件
一.安装支持ZIP的工具 yum install -y unzip zip 二.解压zip文件 unzip 文件名.zip 二. 压缩一个zip文件 zip 文件名.zip 文件夹名称或文件名称
- C# .NET 使用第三方类库DotNetZip解压/压缩Zip文件
dotNetZip on CodePlex: http://dotnetzip.codeplex.com/ 详细的可以看源代码……总之感觉比SharpZipLib好用.而且DotNetZip支持VB, ...
- linux解压/压缩文件
1.*.tar 用 tar –xvf 解压 2.*.gz 用 gzip -d或者gunzip 解压 3.*.tar.gz和*.tgz 用 tar –xzf 解压 4.*.bz2 用 bzip2 ...
- C# 上传RAR文件 解压 获取解压后的文件名称
此方法适用于C盘windows文件夹中有WinRAR.exe文件 if (fileExt.ToUpper() == ".RAR") { string zpath = Server. ...
- Linux解压/压缩命令——tar、gz、tar.gz、tgz、bz2、tar.bz2、Z、zip、rar、lha
.tar 解包:tar -xvf FileName.tar 打包:tar -cvf FileName.tar DirName ——————————————— .gz 解压1:gunzip FileNa ...
- python用模块zlib压缩与解压字符串和文件的方法
摘自:http://www.jb51.net/article/100218.htm Python标准模块中,有多个模块用于数据的压缩与解压缩,如zipfile,gzip, bz2等等. python中 ...
随机推荐
- MSP430电平转换
说道到这个电平转换,写程序的时候居然还要示波器来观察现象,表示我们交的是211的学费,上的却不是211大学,创新实验室的仪器设备真的是少的可怜啊,我级不吐槽了说说这个电平转换的一些知识还有看法吧.. ...
- RMI原理
一.分布式对象 在学习 RMI 之前,先来分布式对象(Distributed Object):分布式对象是指一个对象可以被远程系统所调用.对于 Java 而言,即对象不仅可以被同一虚拟机中的其他客户程 ...
- SharePoint缓存导致访问慢解决
产品发布到公网时,客户每次访问页面都很慢,经过查找原因,发现在服务器上的APPFabric缓存出错误了: APPFabric缓存服务作用:用作内存中缓存来存储应用程序访问的数据,从而提高应用程序性能. ...
- Unity3D 之UGUI制小地图
这里使用UGUI制作一个小地图. 方法一: 第一步:使用UGUI弄一个地图背景和人物指针 第二步:脚本获取人物的位置和角度给人物指针进行同步 将 PlayerIconController.cs 文件绑 ...
- PL/SQL在Oracle服务器上连接出错
今天在Oracle服务器上使用PL/SQL连接Oracle软件的时候出现了错误,错误如下: 具体的解决办法如下: 需要下载32位的Oracle Client,具体的步骤如下:登录Oracle官方网站 ...
- 基础之ThreadStatic
public class Bean { public Bean() { } public static String Current { get { if (guid == null) guid = ...
- ZOJ 2411 Link Link Look(BFS)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1411 题目大意:连连看,给出每次连线的两个坐标,求能消去多少方块,拐 ...
- [数据结构] 成都磨子桥技工学校 Challenge Series
Challenge 0: 第一次裸写竟然WA了.... Challenge 1: 不想写了.
- CUDA_矢量相加
#include<iostream> #define N 10 _ _global_ _ void add(*a,*b,*c) { int tid=blockIdx.x; if(tid&l ...
- [java学习笔记]JDK的安装和环境变量的配置
1.JDK的下载和安装 jdk(java development kit)是java提供给我们的一套java开发工具,它必运行在JVM(java虚拟机)上,java语言的跨平台性就是利用java运行在 ...