最近经常下载一些小朋友的资源,发现很多都是压缩文件, 几百个, 于是写程序解压。

using Microsoft.Win32;
using System;
using System.Diagnostics;
using System.IO;
namespace ConsoleApp1
{class Program{static void Main(string[] args){//Console.WriteLine(ExistsWinRar());string dirPath = @"E:\BaiduNetdiskDownload\02 - Super Simple Songs 音频242首MP3";var files =  Directory.GetFiles(dirPath, "*.rar");foreach (var file in files){UnRAR(file, dirPath);File.Delete(file);}}/// <summary>/// 获取WinRAR.exe路径/// </summary>/// <returns>为空则表示未安装WinRAR</returns>public static string ExistsRAR(){RegistryKey regkey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe");//RegistryKey regkey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");string strkey = regkey.GetValue("").ToString();regkey.Close();//return strkey.Substring(1, strkey.Length - 7);return strkey;}/// <summary>/// 解压RAR文件/// </summary>/// <param name="rarFilePath">要解压的文件路径</param>/// <param name="unrarDestPath">解压路径(绝对路径)</param>public static void UnRAR(string rarFilePath, string unrarDestPath){string rarexe = ExistsRAR();if (String.IsNullOrEmpty(rarexe)){throw new Exception("未安装WinRAR程序。");}try{//组合出需要shell的完整格式string shellArguments = string.Format("x -o+ \"{0}\" \"{1}\\\"", rarFilePath, unrarDestPath);//用Process调用using (Process unrar = new Process()){ProcessStartInfo startinfo = new ProcessStartInfo();startinfo.FileName = rarexe;startinfo.Arguments = shellArguments;               //设置命令参数startinfo.WindowStyle = ProcessWindowStyle.Hidden;  //隐藏 WinRAR 窗口unrar.StartInfo = startinfo;unrar.Start();unrar.WaitForExit();//等待解压完成unrar.Close();}}catch{throw;}}/// <summary>///  压缩为RAR文件/// </summary>/// <param name="filePath">要压缩的文件路径(绝对路径)</param>/// <param name="rarfilePath">压缩到的路径(绝对路径)</param>public static void RAR(string filePath, string rarfilePath, string otherPara){RAR(filePath, rarfilePath, "", "", otherPara);}/// <summary>///  压缩为RAR文件/// </summary>/// <param name="filePath">要压缩的文件路径(绝对路径)</param>/// <param name="rarfilePath">压缩到的路径(绝对路径)</param>/// <param name="rarName">压缩后压缩包名称</param>public static void RAR(string filePath, string rarfilePath, string rarName, string otherPara){RAR(filePath, rarfilePath, rarName, "", otherPara);}/// <summary>///  压缩为RAR文件/// </summary>/// <param name="filePath">要压缩的文件路径(绝对路径)</param>/// <param name="rarfilePath">压缩到的路径(绝对路径)</param>/// <param name="rarName">压缩后压缩包名称</param>/// <param name="password">解压密钥</param>public static void RAR(string filePath, string rarfilePath, string rarName, string password, string otherPara){string rarexe = ExistsRAR();if (String.IsNullOrEmpty(rarexe)){throw new Exception("未安装WinRAR程序。");}if (!Directory.Exists(filePath)){//throw new Exception("文件不存在!");}if (String.IsNullOrEmpty(rarName)){rarName = Path.GetFileNameWithoutExtension(filePath) + ".rar";}else{if (Path.GetExtension(rarName).ToLower() != ".rar"){rarName += ".rar";}}try{//Directory.CreateDirectory(rarfilePath);//压缩命令,相当于在要压缩的文件夹(path)上点右键->WinRAR->添加到压缩文件->输入压缩文件名(rarName)string shellArguments;if (String.IsNullOrEmpty(password)){shellArguments = string.Format("a -ep1 \"{0}\" \"{1}\" -r", rarName, filePath);}else{shellArguments = string.Format("a -ep1 \"{0}\" \"{1}\" -r -p\"{2}\"", rarName, filePath, password);}if (!string.IsNullOrEmpty(otherPara)){shellArguments = shellArguments + " " + otherPara;}using (Process rar = new Process()){ProcessStartInfo startinfo = new ProcessStartInfo();startinfo.FileName = rarexe;startinfo.Arguments = shellArguments;               //设置命令参数startinfo.WindowStyle = ProcessWindowStyle.Hidden;  //隐藏 WinRAR 窗口startinfo.WorkingDirectory = rarfilePath;rar.StartInfo = startinfo;rar.Start();rar.WaitForExit(); //无限期等待进程 winrar.exe 退出rar.Close();}}catch{throw;}}}
}

如何用C#+WinRAR 实现压缩相关推荐

  1. c# rar解压大小_C#利用WinRAR实现压缩和解压缩

    usingSystem;usingMicrosoft.Win32;usingSystem.Diagnostics;usingSystem.IO;namespaceMSCL {/// ///压缩解压类/ ...

  2. WinRAR(WinZip)压缩与解压实现(C#版Window平台)

    本文的原理是借助Windows平台安装的WinRAR(WinZip)实现C#程序的调用(注:WinRAR压缩解压WinZip同样适用). 先来看WinRAR(WinZip)自身的支持调用命令: 压缩命 ...

  3. 安装了winRAR 但压缩文件没有显示winRAR图标

    安装了winRAR 但压缩文件没有显示winRAR图标 在选项中找到设置,将其按下图设置.点击确定后就可以看到压缩文件呈winRAR图标

  4. 【C#】使用WinRAR进行压缩和解压

    需要电脑安装WinRAR,所以需要进行WinRAR的判断 public class WinRAR {/// <summary>/// 判断系统上是否安装winrar/// </sum ...

  5. 把WinRAR默认压缩格式换为ZIP

    转载自:把WinRAR默认压缩格式换为ZIP 使用WinRAR的一个技巧,说实话,我并不喜欢WinRAR,不过不可否认这个软件有其方便的地方,在一些细节方面7Zip的确不如WinRAR做的好. 例如, ...

  6. WinRAR - 分卷压缩

    WinRAR - 分卷压缩 1. vs2013.2_ult_chs.iso 右键 -> 添加到压缩文件 2. 切分为分卷 (V),大小

  7. WinRAR 分卷压缩和解压文件

    WinRAR 分卷压缩和解压文件 1. WinRAR http://www.winrar.com.cn/ 1.1 分卷压缩文件 文件 -> 添加到压缩文件 -> 切分为分卷 (V),大小 ...

  8. 程序调用winrar自动压缩文件

    程序调用winrar自动压缩文件,有时在备份文件等,完成后需要用本机的winrar对文件自动压缩并拷贝走. 这里提供一个例程: try{String winRarPath = null;if (!Ex ...

  9. WinRAR.exe压缩文件夹的脚本bat

    压缩脚本 将该脚本复制下来,放到文本编辑器中.最后将文件的后缀名改为.bat 保存后将该脚本放在需要打包文件的同级目录. xcopy /E/Y .\destfile .\tmpfile destfil ...

最新文章

  1. JSP针织生产管理系统
  2. Redis知识点汇总
  3. 从源码角度看Android系统init进程启动过程
  4. python 为html页面增加背景_Python 给html css自动添加注释
  5. 极限学习机和支持向量机_极限学习机I
  6. php识别字符编码,PHP自动识别字符集编码并完成转码_PHP教程
  7. 在 SharePoint 2010 中访问数据
  8. (0)PCIE接口目录(学无止境)
  9. html颜色对话框,网页颜色对话框的使用
  10. c语言开发一个翻译算法,使用有道翻译API做翻译(c语言实现)
  11. 微信小程序电商实战-购物车(上)
  12. 最全面的Fiddler 4教程讲解(界面)
  13. GPS数据格式:NMEA-0183协议
  14. 关于小凡模拟器设置完后找不到所要配置文件的问题
  15. 大众点评产品分析报告
  16. 对计算机课程的意见和建议对老师,对老师教学工作的一点建议和意见(精选5篇)...
  17. C语言绘画示例-进度条
  18. 单招计算机专业常见面试题库,历年高职单招面试常见问题集锦
  19. 扇形涂色问题(Python)
  20. Python Pygame实战之打地鼠小游戏

热门文章

  1. curl ip.sb查询公网ip
  2. RK3288[android 7.1]调试笔记 修改默认时区是北京时间
  3. js下载当前页面表格为excel
  4. 联想G40笔记本U盘重装win7系统问题笔记
  5. Lab3-实现计划项app辅助类实现
  6. 大学计算机基础ppt重点,大学计算机基础.ppt
  7. Android肝帝战纪之基于上篇单Activity+多Fragment框架,开发电商式导航栏,多Fragment切换
  8. idhttp的socket error # 10054 错误的处理办法
  9. 使用fiddle进行苹果手机app抓包教程
  10. 如何自定义火狐背景_在Firefox中自定义菜单