| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
11年前发布

C# 解压zip压缩文件

此方法需要在程序内引用ICSharpCode.SharpZipLib.dll 类库     /// <summary>          /// 功能:解压zip格式的文件。          /// </summary>          /// <param name="zipFilePath">压缩文件路径</param>          /// <param name="unZipDir">解压文件存放路径,为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹</param>          /// <param name="err">出错信息</param>          /// <returns>解压是否成功</returns>          public bool UnZipFile(string zipFilePath, string unZipDir)// , out string err          {              // err = "";              if (zipFilePath == string.Empty)              {                  //err = "压缩文件不能为空!";                  return false;              }              if (!File.Exists(zipFilePath))              {                  //err = "压缩文件不存在!";                  return false;              }              //解压文件夹为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹              if (unZipDir == string.Empty)                  unZipDir = zipFilePath.Replace(Path.GetFileName(zipFilePath), Path.GetFileNameWithoutExtension(zipFilePath));              if (!unZipDir.EndsWith("\\"))                  unZipDir += "\\";              if (!Directory.Exists(unZipDir))                  Directory.CreateDirectory(unZipDir);                try              {                  using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipFilePath.ToLower())))                  {                        ZipEntry theEntry;                      while ((theEntry = s.GetNextEntry()) != null)                      {                          string directoryName = Path.GetDirectoryName(theEntry.Name);                          string fileName = Path.GetFileName(theEntry.Name);                          if (directoryName.Length > 0)                          {                              Directory.CreateDirectory(unZipDir + directoryName);                          }                          if (!directoryName.EndsWith("\\"))                              directoryName += "\\";                          if (fileName != String.Empty)                          {                              using (FileStream streamWriter = File.Create(unZipDir + theEntry.Name))                              {                                    int size = 2048;                                  byte[] data = new byte[2048];                                  while (true)                                  {                                      size = s.Read(data, 0, data.Length);                                      if (size > 0)                                      {                                          streamWriter.Write(data, 0, size);                                      }                                      else                                      {                                          break;                                      }                                  }                              }                          }                      }//while                  }              }              catch (Exception ex)              {                  //err = ex.Message;                  return false;              }              return true;          }//解压结束

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1373618910900.html
C# .NET开发