为什么压缩文件的大小比未压缩的SharpZipLib大

本文关键字:未压缩 SharpZipLib 压缩 为什么 文件 | 更新日期: 2023-09-27 18:08:14

我遇到了一个超级奇怪的问题。我使用SharpZipLib库生成.zip。我发现。zip文件的大小比我的文本文件的总和要大一点。我不知道怎么了。我也试过谷歌,但我找不到任何与我的案件有关的。这是我的代码:

    protected void CompressFolder(string[] files, string outputPath)
    {
        using (ZipOutputStream s = new ZipOutputStream(File.Create(outputPath)))
        {
            s.SetLevel(0);
            foreach (string path in files)
            {
                ZipEntry entry = new ZipEntry(Path.GetFileName(path));
                entry.DateTime = DateTime.Now;
                entry.Size = new FileInfo(path).Length;
                s.PutNextEntry(entry);
                byte[] buffer = new byte[4096];
                int byteCount = 0;
                using (FileStream input = File.OpenRead(path))
                {
                    byteCount = input.Read(buffer, 0, buffer.Length);
                    while (byteCount > 0)
                    {
                        s.Write(buffer, 0, byteCount);
                        byteCount = input.Read(buffer, 0, buffer.Length);
                    }
                }
            }
        }
    }

为什么压缩文件的大小比未压缩的SharpZipLib大

0的压缩级别表示SharpZipLib要存储而不是压缩。

较大的大小是由于Zip元结构(文件名等)

你的解决方案是将级别更改为更高的级别,即:

s.SetLevel(9);