c#解压文件

匿名 (未验证) 提交于 2019-12-02 23:51:01
原文链接:http://www.cnblogs.com/wangbao405/archive/2013/05/06/3062282.html

该方法适应应用桌面快捷键压缩的文件,zip,rar格式的文件进行解压!

#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();//rar工具的安装路径   必须要安装 WinRAR     //例于:C:\Program Files (x86)\WinRAR\RAR.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    
View Code

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,

转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

.NET技术爱好者

本文原始作者博客http://www.cnblogs.com/wangbao405

E-mail:985415615@qq.com

转载于:https://www.cnblogs.com/wangbao405/archive/2013/05/06/3062282.html

文章来源: https://blog.csdn.net/weixin_30275415/article/details/97128832
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!