winform rar压缩包解压缩

/// <summary>
        /// 解压缩
        /// </summary>
        /// <param name="path">文件解压后的存放路径(绝对)</param>
        /// <param name="rarPath">将要解压缩的 .rar 文件的存放目录路径(绝对路径)这个可以是相对路径</param>
        /// <param name="rarName">将要解压缩的 .rar 文件名(包括后缀)不需要路径,前面个参数已含此路径</param>
      public void UnRAR(string path, string rarPath, string rarName)
        {

System.Environment.CurrentDirectory = Application.StartupPath; //当前的路径是启动路径
            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);
                System.IO.Directory.CreateDirectory(path);
                //Thread.Sleep(1000);
                //解压缩命令,相当于在要压缩文件(rarName)上点右键->WinRAR->解压到当前文件夹
                cmd = string.Format("x {0} {1} -y", rarName, path);
                startinfo = new ProcessStartInfo();
                startinfo.FileName = rarexe;
                startinfo.Arguments = cmd;
                startinfo.WindowStyle = ProcessWindowStyle.Hidden;
                System.Environment.CurrentDirectory = Application.StartupPath; //当前的路径是启动路径
                startinfo.WorkingDirectory = rarPath;
                //Thread.Sleep(1000);
                process = new Process();
                // Thread.Sleep(1000);
                process.StartInfo = startinfo;
                //  Thread.Sleep(1000);
                process.Start();
                // Thread.Sleep(1000);
                process.WaitForExit();
                if (process.HasExited)
                {
                    //flag = true;
                    File.Delete(rarPath + rarName); // 解压成功删除元文件 
                }
                else
                {
                    countnu++;
                }
                process.Close();
                listFiles(path);

}
            catch (Exception e)
            {
                //MessageBox.Show("解压缩出现错误");
                countnu++;
            }
        }

在解压缩过程中,如果按照上面异步下载的方法下载下来的.rar压缩包。有些文件时解压不了的,所以根据解压缩以及上一篇提到的下载,在上一篇下载中的第一种方法和本篇的解压缩才是一种完美的结合

时间: 2024-08-25 14:06:06

winform rar压缩包解压缩的相关文章

如何解决rar文件解压缩失败

附件经常会是一系列的压缩文件,下载是默认文件名是一个随机数字.因而下载完会出现压缩文件解压缩失败解决方法:下载时重命名为带一定顺序的文件名,如文件1,文件2,文件3等 如何解决单个文件解压失败?论坛中的许多资料都是使用RAR压缩的,上传到下载,在解压过程中可能会出现错误.一般出现最多的是“CRC”错误,就是在解压末端出现了错误.主要的原因是:1.源文件就有压缩的错误:2. 下载的时候由于线程太多,在收尾的时候出现了错误:3.下载没有完全. 解决的办法:一.修复. 1.首先打开WinRAR主窗口,

Linux下解压rar压缩包

wget http://www.rarlab.com/rar/rarlinux-x64-4.2.0.tar.gz rar软件不需要安装,直接解压到/usr/local下,以下操作需要有root权限. #tar zxvf rarlinux-x64-4.2.0.tar.gz -C /usr/local 此时,/usr/local/rar下就会有rar命令和unrar命令.可以在/usr/local/bin下创建连接 #ln -s /usr/local/rar/rar /usr/local/bin/r

python程序解压rar压缩包报错

运行如下python程序报错Couldn't find path to unrar library的解决办法: #!/usr/bin/python #-*- coding:utf-8 -*- from unrar import rarfile file = rarfile.RarFile('/root/ssl.rar') file.extractall('/tmp') 备注:rarfile已经通过pip3 install rarfile安装,但是unrar用pip3虽然提示成功但是有问题,所以手

mac rar文件解压缩

在下载文件时经常遇到RAR格式的压缩文件, 之前从APP Store下载了免费的解压软件, 但是总觉着不好用, 广告信息很多. 好用的软件都要花钱, 所以找到了命令行解决的办法. 步骤如下: 首先需要从以下网址下载mac上对应rar版本(我当时下载的是RAR 5.60 for Mac OS X) 如果点击上面文件名无效, 可以直接去这个链接下载 http://www.rarlab.com/download.htm 然后cd到下载目录下, 利用tar命令解压下载的rarosx-5.60.tar.g

Java实现对zip和rar文件的解压缩

package com.svse.test; import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Enumeration; import org.apache.tools.zip.ZipEntry;import org.apache.tools.zi

第六节 文件打包与解压缩

一.文件打包和解压缩 在 Windows 上我们最常见的不外乎这三种*.zip,*.rar,*.7z后缀的压缩文件 而在 Linux 上面常见常用的除了以上这三种外,还有*.gz,*.xz,*.bz2,*.tar,*.tar.gz,*.tar.xz,*tar.bz2,简单介绍如下 其中zip,rar,tar最为重要.下面会依次介绍这几个命令及对应的解压命令 1.zip压缩打包程序 使用zip打包文件夹: 上面命令将 shiyanlou 的 home 目录打包成一个文件,并查看了打包后文件的大小和

mac命令行压缩解压rar文件

去 http://www.rarlab.com/download.htm下载 rarosx 在Mac OS X系统中默认不支持 RAR 文件的解压缩.下面演示如何在Mac OS X系统中使用 rar 命令行操作. 1. 首先从rarlab 网站下载 rar/unrar 工具: 2. 解压缩下载的 tar.gz 压缩包(tar xvf rarosx-5.2.0.tar.gz),在下载目录Downloads下自动创建一个rar的目录,其中有rar / unrar 文件: 3. 进入终端(命令窗口  

Linux rar乱码

大家都知道,Linux下的中文乱码是一个很烦的事情,在这里我叫大家如何解决这个问题. rar乱码 ubunut下打开rar包,如果里面有中文就会显示乱码,其实就觉这个问题最简单了,只要把进入新立得,搜索rar,然后卸载rar并重新安装unrar即可.(卸载rar包之后无法创建rar压缩包) 上面的办法可以解决rar乱码问题,但是有一点不好的地方就是无法创建rar压缩包,要是想解决乱码的同时还要保留创建rar压缩包功能的话就得使用一下方法: 1.到http://www.rarlab.com/dow

Linux学习笔记(文件打包与解压缩)

常用命令: zip: 打包 :zip something.zip something (目录请加 -r 参数) 解包:unzip something 指定路径:-d 参数 tar: 打包:tar -zcvf something.tar something 解包:tar -zxvf something.tar 指定路径:-C 参数 linux 上常用的压缩/解压工具, 主要讲解 zip,rar,tar 在讲 Linux 上的压缩工具之前,有必要先了解一下常见常用的压缩包文件格式. 在 Window