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

rar压缩解压缩

阅读更多
using System.IO;
      using Microsoft.Win32;
      using System.Diagnostics;

        /// <summary>
        /// 利用 WinRAR 进行压缩
        /// </summary>
        /// <param name="path">将要被压缩的文件夹(绝对路径)</param>
        /// <param name="rarPath">压缩后的 .rar 的存放目录(绝对路径)</param>
        /// <param name="rarName">压缩文件的名称(包括后缀)</param>
        /// <returns>true 或 false。压缩成功返回 true,反之,false。</returns>
        public static 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.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe");
                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 static 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.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe");
                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;
        }

 

分享到:
评论

相关推荐

    vb 编写rar压缩解压缩程序

    综上所述,使用VB编写RAR压缩解压缩程序,需要结合第三方库或WinRAR SDK,通过学习和理解API,编写代码实现文件的压缩和解压缩操作。在整个过程中,还需要关注错误处理、性能优化以及用户交互等多个方面。

    asp.net调用RAR实现文件压缩与解压缩图文代码

    不过要注意的是,由于Web程序不能直接调用客户端的程序(除非用ActiveX,ActiveX几乎被废弃),所以如果要想实现让用户把本地文件用网页解压缩只有把文件上传到服务器上再调用服务器上的RAR压缩,同理要解压缩本地的...

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

    解压缩文件的过程相对简单,主要使用`RAROpenArchiveEx`打开压缩文件,然后通过`RARProcessFile`读取并解压文件。下面是一个简单的解压缩文件的C#代码示例: ```csharp [DllImport("Unrar.dll", CharSet = CharSet....

    RAR解压缩 GPU运行解压缩

    RAR解压缩 GPU运行解压缩,不注册也可以使用的。一样的。

    delphi rar 压缩与解压缩的控件及例子

    在Delphi编程环境中,处理RAR压缩与解压缩任务通常需要借助第三方控件或库。RAR是一种流行的压缩格式,由RarLab开发,以其高效的压缩算法和对大文件的支持而闻名。在Delphi中,我们可以使用如`FastRAR`、`JCL`(Jedi...

    RAR压缩文件密码破解

    RAR压缩文件密码破解 RAR压缩文件密码破解

    java实现rar压缩与解压缩

    在Java编程语言中,实现RAR压缩与解压缩是一项常见的任务,尤其在处理大量数据或打包文件以便于传输时。本文将深入探讨如何使用Java来实现这个功能,主要关注`FileUtil.java`文件中的代码实现。 首先,Java本身并不...

    安卓Android源码——文件管理器源码,文件拖曳,list弹性,root ,rar压缩解.rar

    5. **RAR压缩解压缩**: RAR是一种常见的压缩格式,安卓平台上的文件管理器往往需要支持RAR文件的解压缩。这涉及到对RAR文件格式的理解,以及使用第三方库(如Apache Commons Compress或RARLab的RAR库)来实现读取...

    RAR压缩文件破解

    WinRAR/RAR 压缩文件密码的恢复工具,如果用户不小心忘记了RAR文件的密码,就可以使用它进行破解。RAR密码破解软件支持所有版本的WinRAR/RAR 压缩文件,不管WinRAR /RAR 的密码有多长和多复杂,均可恢复。

    WIN RAR解压缩

    WIN RAR解压缩

    批量压缩解压缩.rar

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

    RAR压缩模块 1.0.rar

    总的来说,RAR压缩模块1.0是实现RAR文件处理的关键组件,它包含了一系列用于压缩、解压缩和管理RAR文件的技术和功能。虽然具体模块的详细特性未给出,但以上所述的知识点展示了RAR格式和其应用的普遍原理。

    unrar_vc.rar_rar压缩源码_unrar_压缩文件解密_压缩源码_压缩解压缩

    5. 压缩解压缩: 解压缩过程分为两步:首先,根据RAR文件头的信息,解码器会识别出使用的压缩算法;然后,使用对应的解压算法还原原始数据。在这个过程中,解压缩源码会详细展示如何处理各种压缩编码,如恢复丢失的...

    javaandroid可用的ziprar解压缩代码实现.rar

    在Android平台上,对ZIP和RAR文件进行解压缩是常见的需求,比如在安装APK应用、更新资源文件或者处理用户上传的数据时。JavaAndroid可用的ziprar解压缩代码实现提供了这样的功能,但请注意,由于文件数量多,可能...

    RAR压缩密码破解

    RAR压缩密码破解,非常好用

    rar解压缩软件

    rar解压缩软件,免注册版,支持xp,win7,win8

    RAR压缩文件密码破解软件

    RAR压缩文件密码破解软件,如果密码复杂的话,破解时间可能会长一点~~~

    rar mac 解压缩

    "RAR mac 解压缩"指的是在Mac上对RAR格式的压缩文件进行解压的过程。本文将详细介绍如何在Mac上处理RAR文件,包括使用工具、操作步骤以及可能遇到的问题。 一、解压缩RAR文件的工具 1. The Unarchiver:The ...

    360rar解压缩

    《360rar解压缩:全面解析RAR压缩文件与360解压缩工具的使用》 RAR是一种流行的压缩文件格式,由俄罗斯软件开发者Eugene Roshal开发,旨在提供比ZIP更高的压缩比率和更强大的文件修复功能。RAR文件通常用于存储大量...

Global site tag (gtag.js) - Google Analytics