`
Virgo_S
  • 浏览: 1153594 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

c# rar压缩解压缩

    博客分类:
  • .NET
阅读更多
此程序利用 WinRAR 程序对文件进行压缩,命令行语法可参考WinRAR中文帮助。
/// <summary>
/// 利用 WinRAR 进行压缩
/// </summary>
/// <param name="path">将要被压缩的文件夹(绝对路径)</param>
/// <param name="rarPath">压缩后的 .rar 的存放目录(绝对路径)</param>
/// <param name="rarName">压缩文件的名称(包括后缀)</param>
/// <returns>true 或 false。压缩成功返回 true,反之,false。</returns>
public bool RAR(string path, string rarPath, string rarName)
{
    bool flag = false;
    string rarexe;       //WinRAR.exe 的完整路径
    RegistryKey regkey;  //注册表键
	Object regvalue;     //键值
	string cmd;          //WinRAR 命令参数
	ProcessStartInfo startinfo;
    Process process;
    try
    {
        regkey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");
        regvalue = regkey.GetValue("");  // 键值为 "d:\Program Files\WinRAR\WinRAR.exe" "%1"
        rarexe = regvalue.ToString();    
        regkey.Close();
        rarexe = rarexe.Substring(1, rarexe.Length - 7);  // d:\Program Files\WinRAR\WinRAR.exe
        Directory.CreateDirectory(path);
        //压缩命令,相当于在要压缩的文件夹(path)上点右键 ->WinRAR->添加到压缩文件->输入压缩文件名(rarName)
        cmd = string.Format("a {0} {1} -r", rarName, path);
        startinfo = new ProcessStartInfo();
        startinfo.FileName = rarexe;
        startinfo.Arguments = cmd;                          //设置命令参数
        startinfo.WindowStyle = ProcessWindowStyle.Hidden;  //隐藏 WinRAR 窗口
        startinfo.WorkingDirectory = rarPath;
        process = new Process();
        process.StartInfo = startinfo;
        process.Start();
        process.WaitForExit(); //无限期等待进程 winrar.exe 退出
        if (process.HasExited)
        {
            flag = true;
        }
        process.Close();
	}
    catch (Exception e)
    {
        throw e;
    }
    return flag;
}
/// <summary>
/// 利用 WinRAR 进行解压缩
/// </summary>
/// <param name="path">文件解压路径(绝对)</param>
/// <param name="rarPath">将要解压缩的 .rar 文件的存放目录(绝对路径)</param>
/// <param name="rarName">将要解压缩的 .rar 文件名(包括后缀)</param>
/// <returns>true 或 false。解压缩成功返回 true,反之,false。</returns>
public bool UnRAR(string path, string rarPath, string rarName)
{
    bool flag = false;
    string rarexe;
    RegistryKey regkey;
    Object regvalue;
    string cmd;
    ProcessStartInfo startinfo;
    Process process;
    try
    {
        regkey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");
        regvalue = regkey.GetValue("");
        rarexe = regvalue.ToString();
        regkey.Close();
        rarexe = rarexe.Substring(1, rarexe.Length - 7);
        Directory.CreateDirectory(path);
        //解压缩命令,相当于在要压缩文件(rarName)上点右键 ->WinRAR->解压到当前文件夹
        cmd = string.Format("x {0} {1} -y", rarName, path);
        startinfo = new ProcessStartInfo();
        startinfo.FileName = rarexe;
        startinfo.Arguments = cmd;
        startinfo.WindowStyle = ProcessWindowStyle.Hidden;
        startinfo.WorkingDirectory = rarPath;
        process = new Process();
        process.StartInfo = startinfo;
        process.Start();
        process.WaitForExit();
        if (process.HasExited)
        {
            flag = true;
        }
        process.Close();
    }
    catch (Exception e)
    {
        throw e;
    }
    return flag;
}

在dos或者cmd下用cd命令进入到winrar的安装目录后,输入unrar可出来以下提示:

用法:     unrar < 命令> -<开关 1> -<开关 N> <压缩文件> <文件...> 
               <@ 列表文件...> <解压路径\> 

<命令> 
  e             解压压缩文件到当前目录 
  l[t,b]        列出压缩文件[技术信息,简洁] 
  p             打印文件到标准输出设备 
  t             测试压缩文件 
  v[t,b]        详细列出压缩文件[技术信息,简洁] 
  x             用绝对路径解压文件 

<开关> 
  -             停止扫描 
  ac            压缩或解压后清除存档属性 
  ad            添加压缩文件名到目标路径 
  ap<格式>      添加路径到压缩文件中 
  av-           禁用用户身份校验 
  c-            禁用注释显示 
  cfg-          禁用读取配置 
  cl            名称转换为小写 
  cu            名称转换为大写 
  dh            打开共享文件 
  ep            从名称中排除路径 
  ep3           扩展路径为包含盘符的完全路径 
  f             刷新文件 
  id[c,d,p,q]   禁用消息 
  ierr          发送所有消息到标准错误设备 
  inul          禁用所有消息 
  ioff          完成一个操作后关闭 PC 电源 
  kb            保留损坏的已解压文件 
  n<文件>       仅包含指定的文件 
  n@            从标准输入设备读取文件名到包括 
  n@<列表>      在指定的文件列表包括文件 
  o+            覆盖已存在文件 
  o-            不覆盖已存在文件 
  oc            设置 NTFS 压缩属性 
  or            自动重命名文件 
  ow            保存或恢复文件所有者和组 
  p[密码]       设置密码 
  p-            不询问密码 
  r             递归子目录 
  ri<P>[:<S>]   设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间 
  sl<大小>      处理小于指定大小的文件 
  sm<大小>      处理超过指定大小的文件 
  ta<日期>      添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS 
  tb<日期>      添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS 
  tn<时间>      添加 <时间> 以后的文件 
  to< 时间>      添加 <时间> 以前的文件 
  ts<m,c,a>[N]  保存或恢复文件时间(修改,创建,访问) 
  u             更新文件 
  v             列出所有卷 
  ver[n]        文件版本控制 
  vp            每卷之前暂停 
  x<文件>       排除指定的文件 
  x@            从标准输入设备读取要排除的文件名 
  x@<列表>      排除指定列表文件中的文件 
  y             假设对全部询问都回答是

在DOS(cmd)下使用WinRAR解缩文件具体举例:
假设,d 盘中有一个 winrar.rar,要解压到F盘中的hello文件夹中,则在dos下输入以下命令即可:
unrar x d:\winrar.rar F:\hello\







分享到:
评论

相关推荐

    C# 压缩与解压缩完整源码,支持ZIP,RAR,7Z,WinZip,BZip2等

    C# 压缩与解压缩完整源码,支持ZIP,RAR,7Z,WinZip,BZip2等,可以支持压缩批量文件,大文件,文件夹。支持解压单个文件,批量文件,文件夹等。完整源码,本项目包含三个子项目,分别是压缩与解压缩应用项目,压缩源码...

    C#两种解压缩方法,一种.net2.0自带类,第二种利用RAR解压缩

    在.NET框架中,C#提供了多种解压缩文件的方法。这里我们将深入探讨两种常见的技术:一种是使用.NET 2.0自带的`System.IO.Compression`命名空间中的`GZipStream`或`DeflateStream`,另一种是利用第三方库如...

    c# 压缩和解压缩自己写的一个例子源代码

    总结来说,这个C#自定义压缩解压缩实例是一个独立于现有库的实现,其核心在于创新的压缩算法和优化策略。通过研究和理解这个实现,开发者可以扩展其对数据压缩的理解,同时可能发现适用于自己项目的高效压缩解决方案...

    c# Sharp 压缩与解压缩 _Dll

    本文将深入探讨C# Sharp中关于压缩与解压缩的实现,特别是通过DLL(动态链接库)文件来增强这方面的功能。 DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它允许多个应用程序共享同一段代码...

    C#对压缩文件的加密解密.rar

    总的来说,"**C#对压缩文件的加密解密.rar**"这个资源涵盖了C#编程中的几个关键知识点:文件压缩与解压缩、加密算法的应用、Winform UI设计以及第三方库的使用。通过学习和理解这个项目,开发者可以提升在数据安全...

    C# rar和zip压缩解压缩代码

    2. **解压缩ZIP文件**:解压缩ZIP文件同样简单,只需打开ZIP文件,然后遍历其中的`ZipArchiveEntry`,并为每个条目创建一个新文件,将其内容写入该文件。 ```csharp using (var archive = ZipFile.OpenRead("input....

    C# 利用win.rar压缩解压缩

    下面是一个简单的解压缩文件的C#代码示例: ```csharp [DllImport("Unrar.dll", CharSet = CharSet.Unicode)] public static extern int RARProcessFile(IntPtr hArcData, uint Command, string DestPath, string ...

    C#实现rar压缩与解压缩文件的方法

    本文实例讲述了C#实现rar压缩与解压缩文件的方法。分享给大家供大家参考。具体分析如下: 此程序利用 WinRAR 程序对文件进行压缩,命令行语法可参考WinRAR中文帮助。 /// 利用 WinRAR 进行压缩 /// /// 将要被压缩...

    c# 压缩解压缩源码

    本文将深入探讨如何使用C#实现文件和文件夹的压缩与解压缩功能,以及如何仿制常见的压缩解压缩工具。 一、基础理论 在C#中,我们可以利用.NET Framework提供的System.IO.Compression命名空间中的ZipArchive类来实现...

    c# 利用WinRAR压缩解压缩文件

    在C#编程环境中,我们可以利用外部的WinRAR应用程序来实现文件和文件夹的压缩与解压缩功能。WinRAR是一款强大的压缩工具,它提供了命令行版本(Rar.exe),可以被C#程序通过进程调用来执行相关操作。下面将详细介绍...

    批量压缩解压缩.rar

    "批量压缩解压缩.rar" 提供了这样的功能,它允许用户一次性处理多个文件或整个目录,极大地提高了效率。这一工具对于那些需要频繁处理大量文件的IT专业人员来说尤其实用,比如开发人员、系统管理员和数据分析师。 ...

    C# .net解压缩程序 压缩 解压

    本文将深入探讨如何使用C#进行文件的压缩与解压缩操作,主要关注使用System.IO.Compression命名空间中的ZipArchive类。 首先,让我们了解基本概念。压缩文件的主要目的是减少文件的存储空间,通过算法将文件数据...

    所有压缩格式的压缩解压缩.rar_C#压缩_c rar压缩_解压 rar_解压 压缩_解压rar

    所有压缩格式的压缩解压缩。

    详解C#压缩、解压文件夹/文件(带密码)

    在解压缩方面,DotNetZip和SharpCompress都有相应的API来处理。例如,使用DotNetZip解压一个带有密码的ZIP文件: ```csharp public static void DecompressionFile(string zipPath, string extractPath, string ...

    C#调用WINRAR解压缩

    本篇将详细介绍如何在C#中利用WinRAR命令行工具(Rar.exe)实现文件的解压缩功能,并提供相关知识点。 首先,你需要在系统中安装WinRAR,通常安装完成后,其命令行工具Rar.exe会位于安装目录下的"WinRAR"子目录中。...

    一个基于C#实现的数据信息ZIP压缩与解压包装类源码及例子程序

    本篇文章将详细探讨基于C#实现的ZIP压缩与解压缩包装类,并提供相关的源码和实例程序。 ZIP是一种广泛使用的文件格式,它允许用户将多个文件和目录打包成单个文件,以节省存储空间和方便传输。在C#中,我们可以利用...

    zip\rar C# 压缩解压

    根据提供的文件信息,我们可以深入探讨如何使用C#语言来实现ZIP和RAR文件的压缩与解压缩功能。在本文中,我们将详细分析代码片段,并从中提取关键知识点,包括使用外部程序WinRAR进行压缩/解压缩的基本步骤,以及...

Global site tag (gtag.js) - Google Analytics