压缩文件夹为什么不压缩它的大小?

时间:2016-04-18 13:38:42

标签: c#

我正在使用此例程从现有目录创建Zipfile。它编译并且不会引发运行时错误。然而,在减小尺寸方面它并没有完成任务。

using Ionic.Zip;

//..

using (ZipFile zip = new ZipFile())

{
    zip.AddDirectory(SourceFolder);

    zip.Save(DestinationFolder + FolderName + ".zip");
}

原始文件夹包含PNG个图片,一个.xlsx文件和一个.xml文件,并且压缩文件夹始终具有相同的大小(不完全相同但非常相似)。可能的原因是什么?坏图书馆?

这些文件夹不断生成。因此,占用磁盘上的大量空间,我们需要每天检查/清理。我该怎么做才能减少这种情况?

2 个答案:

答案 0 :(得分:5)

你可以尝试添加这一行:

zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression; 

但正如@JonSkeet所说,它不会做太多。图片和视频不会压缩得更多。

它不适用于OP,但供将来参考: enter image description here

答案 1 :(得分:2)

我在codeplex上找到了许多可用的示例:https://dotnetzip.codeplex.com/wikipage?title=CS-Examples&referringTitle=Examples

但我找到的最相关的是这个,其中包括选择最佳压缩方法:

using (ZipFile zip = new ZipFile())
{
  zip.CompressionLevel= Ionic.Zlib.CompressionLevel.BestCompression;
  zip.AddFile("Datafeed-2008-12-20.csv");
  zip.Save(ZipFileToCreate);
}

我希望这会有所帮助。