ZipArchive ZipFile没有压缩

时间:2017-01-20 05:20:44

标签: zipfile ziparchive deflate system.io.compression

我在.net 4.5中使用System.IO.Compression,ZipArchive和ZipFile用于将txt文件添加到存档中。大约有75个文件。 将文件放入文件夹并测量大小时,大约为15 KB

但是当用于使用ZipArchive进行存档时,生成的zip文件大小为21KB。 我做错了什么或者这个ZipArhive只是将文件放入存档单个文件而不是压缩?

是否使用Deflate算法创建.zip? 这就是我所做的。是否有可以使用的高级压缩?对于.7zip文件大小更小,仅约1KB

 using (ZipArchive zippedFile = ZipFile.Open(zipFileName, ZipArchiveMode.Create))
                {
                    foreach (string file in filesTobeZipped)
                    {
                        zippedFile.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal);
                    }
                }

1 个答案:

答案 0 :(得分:1)

zip文件中的每个条目都有76字节的本地和中央标头的开销加上带路径的文件名的长度,两次,加上22字节的单个结束记录。例如,对于75个文件,例如,三个字符的名称,总开销约为6K。每个文件的平均长度大约为200字节未压缩,这太短而无法有效压缩。如果每个文件在zip文件中仍然是一个200字节的条目,那么你最终会得到一个21K的zip文件。事实上,这就是你得到的。