源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#解压文件的实例方法

  • 时间:2022-05-26 00:38 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#解压文件的实例方法
[u]复制代码[/u] 代码如下:
#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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部