C#压缩或解压(rar和zip文件)
- /// <summary>
- /// 解压RAR和ZIP文件(需存在Winrar.exe(只要自己电脑上可以解压或压缩文件就存在Winrar.exe))
- /// </summary>
- /// <param name="UnPath">解压后文件保存目录</param>
- /// <param name="rarPathName">待解压文件存放绝对路径(包括文件名称)</param>
- /// <param name="IsCover">所解压的文件是否会覆盖已存在的文件(如果不覆盖,所解压出的文件和已存在的相同名称文件不会共同存在,只保留原已存在文件)</param>
- /// <param name="PassWord">解压密码(如果不需要密码则为空)</param>
- /// <returns>true(解压成功);false(解压失败)</returns>
- public static bool UnRarOrZip(string UnPath, string rarPathName, bool IsCover,string PassWord)
- {
- if (!Directory.Exists(UnPath))
- Directory.CreateDirectory(UnPath);
- Process Process1 = new Process();
- Process1.StartInfo.FileName = "Winrar.exe";
- Process1.StartInfo.CreateNoWindow = true;
- string cmd = "";
- if (!string.IsNullOrEmpty(PassWord) && IsCover)
- //解压加密文件且覆盖已存在文件( -p密码 )
- cmd = string.Format(" x -p{0} -o+ {1} {2} -y", PassWord, rarPathName, UnPath);
- else if (!string.IsNullOrEmpty(PassWord) && !IsCover)
- //解压加密文件且不覆盖已存在文件( -p密码 )
- cmd = string.Format(" x -p{0} -o- {1} {2} -y", PassWord, rarPathName, UnPath);
- else if (IsCover)
- //覆盖命令( x -o+ 代表覆盖已存在的文件)
- cmd = string.Format(" x -o+ {0} {1} -y" , rarPathName,UnPath);
- else
- //不覆盖命令( x -o- 代表不覆盖已存在的文件)
- cmd = string.Format(" x -o- {0} {1} -y", rarPathName, UnPath);
- //命令
- Process1.StartInfo.Arguments = cmd;
- Process1.Start();
- Process1.WaitForExit();//无限期等待进程 winrar.exe 退出
- //Process1.ExitCode==0指正常执行,Process1.ExitCode==1则指不正常执行
- if (Process1.ExitCode == )
- {
- Process1.Close();
- return true;
- }
- else
- {
- Process1.Close();
- return false;
- }
- }
- /// <summary>
- /// 压缩文件成RAR或ZIP文件(需存在Winrar.exe(只要自己电脑上可以解压或压缩文件就存在Winrar.exe))
- /// </summary>
- /// <param name="filesPath">将要压缩的文件夹或文件的绝对路径</param>
- /// <param name="rarPathName">压缩后的压缩文件保存绝对路径(包括文件名称)</param>
- /// <param name="IsCover">所压缩文件是否会覆盖已有的压缩文件(如果不覆盖,所压缩文件和已存在的相同名称的压缩文件不会共同存在,只保留原已存在压缩文件)</param>
- /// <param name="PassWord">压缩密码(如果不需要密码则为空)</param>
- /// <returns>true(压缩成功);false(压缩失败)</returns>
- public static bool CondenseRarOrZip(string filesPath, string rarPathName,bool IsCover, string PassWord)
- {
- string rarPath = Path.GetDirectoryName(rarPathName);
- if (!Directory.Exists(rarPath))
- Directory.CreateDirectory(rarPath);
- Process Process1 = new Process();
- Process1.StartInfo.FileName = "Winrar.exe";
- Process1.StartInfo.CreateNoWindow = true;
- string cmd = "";
- if (!string.IsNullOrEmpty(PassWord) && IsCover)
- //压缩加密文件且覆盖已存在压缩文件( -p密码 -o+覆盖 )
- cmd = string.Format(" a -ep1 -p{0} -o+ {1} {2} -r", PassWord, rarPathName, filesPath);
- else if (!string.IsNullOrEmpty(PassWord) && !IsCover)
- //压缩加密文件且不覆盖已存在压缩文件( -p密码 -o-不覆盖 )
- cmd = string.Format(" a -ep1 -p{0} -o- {1} {2} -r", PassWord, rarPathName, filesPath);
- else if (string.IsNullOrEmpty(PassWord) && IsCover)
- //压缩且覆盖已存在压缩文件( -o+覆盖 )
- cmd = string.Format(" a -ep1 -o+ {0} {1} -r", rarPathName, filesPath);
- else
- //压缩且不覆盖已存在压缩文件( -o-不覆盖 )
- cmd = string.Format(" a -ep1 -o- {0} {1} -r", rarPathName, filesPath);
- //命令
- Process1.StartInfo.Arguments = cmd;
- Process1.Start();
- Process1.WaitForExit();//无限期等待进程 winrar.exe 退出
- //Process1.ExitCode==0指正常执行,Process1.ExitCode==1则指不正常执行
- if (Process1.ExitCode == )
- {
- Process1.Close();
- return true;
- }
- else
- {
- Process1.Close();
- return false;
- }
- }
C#压缩或解压(rar和zip文件)的更多相关文章
- 在Ubuntu系统中解压rar和zip文件的方法
大家在以前的windows系统中会存有很多rar和zip格式的压缩文件,Ubuntu系统默认情况下对这些文件的支持不是很好,如果直接用"归档管理器"打开会提示错误,因此今天跟大家分 ...
- 文件压缩、解压工具类。文件压缩格式为zip
package com.JUtils.file; import java.io.BufferedOutputStream; import java.io.File; import java.io.Fi ...
- linux中tar命令(打包、压缩、解压)、zip和unzip、rar多种压缩文件
一.名词解释 打包:将一大堆文件或目录变成一个总的文件[tar命令] 压缩:将一个大的文件通过一些压缩算法变成一个小文件[gzip,bzip2等] Linux中很多压缩程序只能针对一个文件进行压缩,这 ...
- 使用C#压缩解压rar和zip格式文件
为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar.zip和7z,本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩文件的开源库. 在C#. ...
- linux 下面压缩、解压.rar文件
一,解压问题 在网上下东西的时候,经常会遇到.rar后缀的文件,我用tar解压,解压不出,上网找啊找,一直没找到什么合适的工具来压缩和解压.rar后缀的文件,现在我找到了. 二,rar和unrar安装 ...
- Linux解压rar、zip、war、tar文件
在Linux上解压常见文件的命令: rar文件:rar e xxx.rar zip文件:unzip -xzvf xxx.zip war包:jar -xvf xxx.war tar包:tar -xzvf ...
- golang zip 压缩,解压(含目录文件)
每天学习一点go src. 今天学习了zip包的简单使用,实现了含目录的压缩与解压. 写了两个方法,实现了压缩.解压. package ziptest import ( "archive/z ...
- python-----自动解压并删除zip文件
如何自动解压并删除zip? 如何解压 → 使用内置模块来实现(shutil.unpack_archive) 如何删除zip → 使用内置模块os来实现(os.remove) 如何监测zip的出 ...
- golang tar gzip 压缩,解压(含目录文件)
tar是用于文件归档,gzip用于压缩.仅仅用tar的话,达不到压缩的目的.我们常见的tar.gz就是用gzip压缩生成的tar归档文件. go实现tar压缩与解压与zip类似,区别在于tar需要使用 ...
随机推荐
- LeetCode(8)String to Integer (atoi)
题目: Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input ca ...
- 安装mongodb卡顿
"3.6下载安装会卡死."的原因在于,默认安装是包含mongodb compass,这个包的,这个包大约有180MB,下载很慢,导致所谓的的”卡死“. 如果你选用自定义安装的并且不 ...
- nginx+django+uwsgi+https 配置问题点
- ssl 证书申请 申请域名的网站申请下载对应文件即可 - nginx 配置 https [root@VM_2_29_centos conf]# nginx -t nginx: [emerg] u ...
- 九度oj 题目1256:找出两个只出现了一次的数字
题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 输入: 输入的第一行包括一个整数N(1<=N<=1000). 接下来的一行包括N个 ...
- nginx报错 too many open files in system
系统进不去了,用ssh连接服务器也非常慢,负载均衡显示后端连接异常,重启mysql数据库,发现经常重启,或者直接关机,访问页面也访问不到. http://www.51testing.com/html/ ...
- spring配置mybatis3
mybatis官方网站:http://www.mybatis.org/mybatis-3/zh/configuration.html <!--第一步:加载配置数据库相关参数--> < ...
- [BZOJ1572] [Usaco2009 Open]工作安排Job(贪心 + 堆)
传送门 把任务按照d排序 一次加入到堆中,如果当前放不进堆中,并且比堆中最小的大, 就从堆中弹出一个数,再把当前的数放进去 #include <queue> #include <cs ...
- Spoj-BIPCSMR16 Team Building
To make competitive programmers of BUBT, authority decide to take regular programming contest. To ma ...
- hdu 1189 并查集
Farm Irrigation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDU [P3949] XOR
线性基求第 k 小异或值 http://www.cnblogs.com/Mr-WolframsMgcBox/p/8567844.html 这道题消元下来是一个上三角矩阵,代码简单,但是不使用与本题的情 ...