HTML5技术

免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七) - 彭泽0902(5)

字号+ 作者:H5之家 来源:H5之家 2016-12-14 12:00 我要评论( )

递归遍历目录 ZipSetp( string strDirectory, ZipOutputStream s, string parentPath){ if (strDirectory[strDirectory.Length - 1 ] != Path.DirectorySeparatorChar){strDirectory += Path.DirectorySeparatorCha

递归遍历目录 ZipSetp(string strDirectory, ZipOutputStream s, string parentPath) { if (strDirectory[strDirectory.Length - 1] != Path.DirectorySeparatorChar) { strDirectory += Path.DirectorySeparatorChar; } var crc = new Crc32(); var filenames = Directory.GetFileSystemEntries(strDirectory); try { (var file in filenames) { (Directory.Exists(file)) { var pPath = parentPath; pPath += file.Substring(file.LastIndexOf(, StringComparison.Ordinal) + 1); pPath += ; ZipSetp(file, s, pPath); } { (var fs = File.OpenRead(file)) { var buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); , StringComparison.Ordinal) + 1); var entry = new ZipEntry(fileName) { DateTime = DateTime.Now, Size = fs.Length }; fs.Close(); crc.Reset(); crc.Update(buffer); entry.Crc = crc.Value; s.PutNextEntry(entry); s.Write(buffer, 0, buffer.Length); } } } } catch (IOException ioex) { throw new IOException(ioex.Message); } catch (Exception ex) { throw new Exception(ex.Message); } }

    5.解压缩一个 zip 文件:

解压缩一个 zip 文件。 UnZip(string zipedFile, string strDirectory, string password, bool overWrite) { if (string.IsNullOrEmpty(zipedFile)) { throw new ArgumentException(zipedFile); } if (string.IsNullOrEmpty(strDirectory)) { throw new ArgumentException(strDirectory); } if (string.IsNullOrEmpty(password)) { throw new ArgumentException(password); } if (strDirectory == "") { strDirectory = Directory.GetCurrentDirectory(); } )) { strDirectory = strDirectory + ; } try { using (var s = new ZipInputStream(File.OpenRead(zipedFile))) { s.Password = password; ZipEntry theEntry; while ((theEntry = s.GetNextEntry()) != null) { var directoryName = string.Empty; var pathToZip = theEntry.Name; if (pathToZip != "") { directoryName = Path.GetDirectoryName(pathToZip) + ; } var fileName = Path.GetFileName(pathToZip); Directory.CreateDirectory(strDirectory + directoryName); if (fileName == "") continue; if ((!File.Exists(strDirectory + directoryName + fileName) || !overWrite) && (File.Exists(strDirectory + directoryName + fileName))) continue; using (var streamWriter = File.Create(strDirectory + directoryName + fileName)) { var data = new byte[2048]; while (true) { var size = s.Read(data, 0, data.Length); if (size > 0) streamWriter.Write(data, 0, size); else break; } streamWriter.Close(); } } s.Close(); } } catch (IOException ioex) { throw new IOException(ioex.Message); } catch (Exception ex) { throw new Exception(ex.Message); } }

四.总结:

   以上是对SharpZipLib组件的相关介绍,本文的讲解上比较的浅显,如果需要深入的学习可以进入官网进行详细的学习。组件的功能是很强大的,如何在项目中使用组件,完成我们在项目中需要实现的功能,这就是对每个开发者提出了要求,需要我们仔细的去考虑。

   任何学习都需要我们自己去探索和思考,对于一个开发者来说,最重要的就是思考,因为在我们的职业生涯中,没有什么的重要性能够超过思考。如果有不足之处还望各位读者包含,并留言指正。

 

 

.NET组件介绍系列:

    一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)

    高效而稳定的企业级.NET Office 组件Spire(.NET组件介绍之二)

    最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)

    免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)

    免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)

    免费高效实用的Excel操作组件NPOI(.NET组件介绍之六)

   免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 【.net 深呼吸】细说CodeDom(2):表达式、语句 - 东邪独孤

    【.net 深呼吸】细说CodeDom(2):表达式、语句 - 东邪独孤

    2016-12-13 12:00

  • Qt实现FlatUI样式(开源) - 飞扬青云

    Qt实现FlatUI样式(开源) - 飞扬青云

    2016-12-13 11:01

  • .NET Core 首例 Office 开源跨平台组件(NPOI Core) - Savorboard

    .NET Core 首例 Office 开源跨平台组件(NPOI Core) - Savorboard

    2016-12-08 13:00

  • 高品质开源工具Chloe.ORM:支持存储过程与Oracle - 我叫So

    高品质开源工具Chloe.ORM:支持存储过程与Oracle - 我叫So

    2016-12-08 12:00

网友点评
a