Zip 多个文件 用 SharpZipLib.dll
Posted 计划着变化的计划
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zip 多个文件 用 SharpZipLib.dll相关的知识,希望对你有一定的参考价值。
Nuget 安装:Install-Package ICSharpCode.SharpZipLib.dll
private void WriteZipFile(string[] filesToZip, string writeToFilePath) { try { Crc32 crc = new Crc32(); ZipOutputStream s = new ZipOutputStream(System.IO.File.Create(writeToFilePath)); s.SetLevel(9); // 0 - store only to 9 - means best compression for (int i = 0; i < filesToZip.Length; i++) { // Must use a relative path here so that files show up in the Windows Zip File Viewer // .. hence the use of Path.GetFileName(...) ZipEntry entry = new ZipEntry(Path.GetFileName(filesToZip[i])); entry.DateTime = DateTime.Now; // Read in the using (FileStream fs = System.IO.File.OpenRead(filesToZip[i])) { byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); // set Size and the crc, because the information // about the size and crc should be stored in the header // if it is not set it is automatically written in the footer. // (in this case size == crc == -1 in the header) // Some ZIP programs have problems with zip files that don‘t store // the size and crc in the header. entry.Size = fs.Length; fs.Close(); crc.Reset(); crc.Update(buffer); entry.Crc = crc.Value; s.PutNextEntry(entry); s.Write(buffer, 0, buffer.Length); } } s.Finish(); s.Close(); } catch (Exception ex) { HttpContext.Trace.Warn(ex.ToString()); } }
以上是关于Zip 多个文件 用 SharpZipLib.dll的主要内容,如果未能解决你的问题,请参考以下文章