• 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压缩包。有些文件时解压不了的,所以根据解压缩以及上一篇提到的下载,在上一篇下载中的第一种方法和本篇的解压缩才是一种完美的结合

    如果您认为这篇文章还不错或者有所收获,您可以点击文章下面的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!
    声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!
  • 相关阅读:
    CopyOnWriteArrayList 写时复制思想
    CAS中ABA问题的解决
    彻底解决Chrome“请停用以开发者模式运行的扩展程序”提示(亲测整合)
    解决软件安装无法自定义文件夹,自动安装在C盘 (Windows系统)
    IDEA降低注解检测级别
    大白话带你认识JVM(转)
    Windows 与 Linux (CentOS7) 之间的文件共享
    Dubbo、Zookeeper 以及 Tomcat 启动的相关问题
    创建 maven 项目的时候遇到的问题
    MyBatis 项目的 jar 包导入与源码导入
  • 原文地址:https://www.cnblogs.com/gskstudy/p/3995352.html
Copyright © 2020-2023  润新知