• c#解压文件的实例方法


    #region 解压 文件 zip 格式 rar 格式
            /// <summary>
            ///解压文件
            /// </summary>
            /// <param name="fileFromUnZip">解压前的文件路径(绝对路径)</param>
            /// <param name="fileToUnZip">解压后的文件目录(绝对路径)</param>
            public static void UnpackFile(string fileFromUnZip, string fileToUnZip)
            {
                //获取压缩类型
                string unType = fileFromUnZip.Substring(fileFromUnZip.LastIndexOf(".") + 1, 3).ToLower();
                switch (unType)
                {
                    case "rar":
                        UnRar(fileFromUnZip, fileToUnZip);
                        break;
                    case "zip":
                        UnZip(fileFromUnZip, fileToUnZip);
                        break;
                }
            }
            //解压rar格式的文件
            private static void UnRar(string fileFromUnZip, string fileToUnZip)
            {
                using (Process Process1 = new Process())// 开启一个进程 执行解压工作
                {
                   string ServerDir = ConfigurationManager.AppSettings["UnpackFile"].ToString();//WinRAR的安装路径(必须要安装 WinRAR)  //例于:C:Program Files (x86)WinRARRAR.exe
                    Process1.StartInfo.UseShellExecute = false;
                    Process1.StartInfo.RedirectStandardInput = true;
                    Process1.StartInfo.RedirectStandardOutput = true;
                    Process1.StartInfo.RedirectStandardError = true;
                    Process1.StartInfo.CreateNoWindow = true;
                    Process1.StartInfo.FileName = ServerDir;
                    Process1.StartInfo.Arguments = " x -inul -y " + fileFromUnZip + " " + fileToUnZip;
                    Process1.Start();//解压开始  
                    Process1.WaitForExit();
                    Process1.Close();
                }
            }
            // 解压zip 文件
            public static void UnZip(string fileFromUnZip, string fileToUnZip)
            {
                ZipInputStream inputStream = new ZipInputStream(File.OpenRead(fileFromUnZip));
                ZipEntry theEntry;
                while ((theEntry = inputStream.GetNextEntry()) != null)
                {
                    fileToUnZip += "/";
                    string fileName = Path.GetFileName(theEntry.Name);
                    string path = Path.GetDirectoryName(fileToUnZip) + "/";
                    // Directory.CreateDirectory(path);//生成解压目录
                    if (fileName != String.Empty)
                    {
                        FileStream streamWriter = File.Create(path + fileName);//解压文件到指定的目录 
                        int size = 2048;
                        byte[] data = new byte[2048];
                        while (true)
                        {
                            size = inputStream.Read(data, 0, data.Length);
                            if (size > 0)
                            {
                                streamWriter.Write(data, 0, size);
                            }
                            else
                            {
                                break;
                            }
                        }
                        streamWriter.Close();
                    }
                }
                inputStream.Close();
            }
            #endregion

    所需工具:

    此外,用zip解压的方法必须要调用第三方的工具。即ICSharpCode.SharpZipLib.dll,到时候在项目中引用一下就行了。

    生命是一场忧伤的观望,恰如陌路花开,终究是个过客。
  • 相关阅读:
    有限元矩形单元一阶拉格朗日插值函数流程
    有限元二阶拉格朗日插值函数理论
    MATLAB有限元二维编程(三角单元)
    【项目管理】项目经理每天、每周、每月应该做的都在这
    【项目管理】中小公司PMO不一样期间的责任
    【项目管理】PRINCE2常见问答
    如何用几句话概括PRINCE2学习?
    项目管理——收益管理
    【项目管理】项目管理发展的新阶段——PRINCE2项目管理方法
    【MSP是什么】最佳管理实践指南
  • 原文地址:https://www.cnblogs.com/ygyxinyu/p/3287393.html
Copyright © 2020-2023  润新知