博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#压缩或解压(rar和zip文件)
阅读量:5247 次
发布时间:2019-06-14

本文共 3837 字,大约阅读时间需要 12 分钟。

///         /// 解压RAR和ZIP文件(需存在Winrar.exe(只要自己电脑上可以解压或压缩文件就存在Winrar.exe))        ///         /// 解压后文件保存目录        /// 待解压文件存放绝对路径(包括文件名称)        /// 所解压的文件是否会覆盖已存在的文件(如果不覆盖,所解压出的文件和已存在的相同名称文件不会共同存在,只保留原已存在文件)        /// 解压密码(如果不需要密码则为空)        /// 
true(解压成功);false(解压失败)
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 == 0) { Process1.Close(); return true; } else { Process1.Close(); return false; } } /// /// 压缩文件成RAR或ZIP文件(需存在Winrar.exe(只要自己电脑上可以解压或压缩文件就存在Winrar.exe)) /// /// 将要压缩的文件夹或文件的绝对路径 /// 压缩后的压缩文件保存绝对路径(包括文件名称) /// 所压缩文件是否会覆盖已有的压缩文件(如果不覆盖,所压缩文件和已存在的相同名称的压缩文件不会共同存在,只保留原已存在压缩文件) /// 压缩密码(如果不需要密码则为空) ///
true(压缩成功);false(压缩失败)
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 == 0) { Process1.Close(); return true; } else { Process1.Close(); return false; } }

 

转载于:https://www.cnblogs.com/dongh/p/6525389.html

你可能感兴趣的文章
linux脚本中有source相关命令时的注意事项
查看>>
css样式表中的样式覆盖顺序
查看>>
湖南多校对抗赛(2015.03.28) H SG Value
查看>>
REST Web 服务(二)----JAX-RS 介绍
查看>>
hdu1255扫描线计算覆盖两次面积
查看>>
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
bzoj3224 splay板子
查看>>
程序存储问题
查看>>
Mac版OBS设置详解
查看>>
优雅地书写回调——Promise
查看>>
android主流开源库
查看>>
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
LANDR:在线母带处理
查看>>
java web项目修改favicon.ico图标的方式
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
perl 学习笔记
查看>>
31 Days of Windows Phone
查看>>