C# 在SharpZipLib中,为什么压缩文件的大小大于未压缩文件?
我有一个非常奇怪的问题。我使用SharpZipLib库生成.zip。我发现.zip的大小比我的文本文件的总大小稍微大一点。我不知道怎么了。我也尝试过谷歌,但我找不到任何与我的案件有关的。这是我的代码:C# 在SharpZipLib中,为什么压缩文件的大小大于未压缩文件?,c#,c#-4.0,sharpziplib,C#,C# 4.0,Sharpziplib,我有一个非常奇怪的问题。我使用SharpZipLib库生成.zip。我发现.zip的大小比我的文本文件的总大小稍微大一点。我不知道怎么了。我也尝试过谷歌,但我找不到任何与我的案件有关的。这是我的代码: protected void CompressFolder(string[] files, string outputPath) { using (ZipOutputStream s = new ZipOutputStream(File.Create(outputP
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);
}
}
}
}
}
0的压缩级别表示要存储而不是压缩的SharpZipLib 较大的大小是因为Zip元结构(文件名等) 然后,您的解决方案是将级别更改为更高的级别,即:
s.SetLevel(9);
0的压缩级别表示要存储而不是压缩的SharpZipLib 较大的大小是因为Zip元结构(文件名等) 然后,您的解决方案是将级别更改为更高的级别,即:
s.SetLevel(9);
您是在压缩文本还是二进制/图片/word文档等?通常情况下,如果原始文件已经压缩,压缩可能会产生稍大的文件。如果压缩了一个压缩文件,结果会比以前大。你的文件已经压缩了吗?回答之前先看一下。我的文件是文本文件。我尝试手动压缩,zip文件的大小比我从SharpZipLib获得的zip文件小得多。您的文件系统是否已经压缩了这些文本文件?NTFS提供透明的压缩。您是在压缩文本还是二进制/图片/word文档等?通常情况下,如果原始文件已经压缩,压缩可能会产生稍大的文件。如果压缩了一个压缩文件,结果会比以前大。你的文件已经压缩了吗?回答之前先看一下。我的文件是文本文件。我尝试手动压缩,zip文件的大小比我从SharpZipLib获得的zip文件小得多。您的文件系统是否已经压缩了这些文本文件?NTFS提供透明的压缩。