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的主要内容,如果未能解决你的问题,请参考以下文章

UNITY--读取Excel

如何用unzip一次解压多个.zip文件 三种方法

用python下载大zip文件

Camel Zip有多个条目

Python打开zip文件

使用 Dataflow 管道 (python) 将多个 Json zip 文件从 GCS 加载到 BigQuery