【问题标题】:Best way for file compression using C# [closed]使用 C# 进行文件压缩的​​最佳方法 [关闭]
【发布时间】:2012-12-09 15:11:09
【问题描述】:

文件压缩是当今非常重要的事情。我是一名 C# 程序员。我听说过 DotNetZip、SharpZibLib、GZipStream 等。对哪个是最好的感到困惑。我需要的是:

1:更快的压缩速度

2:更好的加密

3:压缩、解压缩工具

4:密码保护

5:免费且足够的参考/教程

6:对初学者更容易

7:添加.mp3、.txt等格式的文件

8:可以处理多个文件(比如一次 500 个,总共 1/2 GB)

提前致谢

更新:时间比空间更昂贵:)

【问题讨论】:

  • 或者它是更远的压缩过程或更好的 cmpression 级别,你必须决定你想要什么
  • 对于 .mp3、.3gp 和 mp4 来说,没有什么是真正好的,因为这些格式已经被压缩了。而且我认为这些标准并不真正适合。而是在重要的时候开始并确定潜在的瓶颈。

标签: c# encryption compression zip


【解决方案1】:

我在一些项目中使用过 DotNetZip,它支持你想要的所有东西。考虑到速度,您必须在压缩速度之间进行选择,这就是 zip 的工作原理。该库提供了一个选项供您选择所需的压缩级别。

该库文档齐全,对初学者来说非常容易。从它开始只需安装 1 个 nuget 包并调用 zipFile.AddFile 和 zipFile.Save。

http://nuget.org/packages/DotNetZip

【讨论】:

【解决方案2】:

它们有不同的用途。 GZipStream class 是框架的一部分,具有压缩单个文件的能力。

如果您想将多个文件压缩到一个存档中(可以由其他人解压缩),您需要一个添加该功能的库。此类库还可以设置控制性能和压缩率之间的平衡,以实现比内置类更好的性能或更好的压缩率。

【讨论】:

  • -1。不要不要使用 GZipStream 类。这是超级越野车。 (见stackoverflow.com/questions/11435200/…)使用DotNetZip。
  • @MarkAdler:真的吗?因为你不喜欢这门课而投反对票?你是认真的?我在您链接到的答案中看不到任何表明该方法有问题的东西。它并不总是产生尽可能小的输出,但这是完全不同的事情。
  • 首先,是的,这是一个错误。与输入数据相比,输出不仅是最小的,而且是巨大的。自尊的压缩机永远不会产生比输入略大的输出。此外,它永远不会使代码适应数据,因此它只是在称为“压缩”的工作中失败了。该类的目的是压缩。不是。
  • @MarkAdler:首先,这不是错误。仅仅因为它不符合您制定的某些标准并不会使它成为错误。其次,我只看到你提到过,但没有解释或解释的链接。第三,好吧……你那里什么都没有,所以没有什么可评论的……第四,OP提到了GZipStream和一些库,我解释了它们之间最根本的区别。 OP 没有没有询问在哪里可以找到它们。那么,为什么要投反对票?
  • 仅仅因为对deflate格式一无所知并不意味着编造了一些东西。这是一个错误。顺便说一句,我刚刚检查了文档,发现他们已经修复了 .NET Framework 4.5 的错误。它说:“从 .NET Framework 4.5 开始,DeflateStream 类使用 zlib 库进行压缩。因此,它提供了更好的压缩算法,并且在大多数情况下,压缩文件比它在早期版本中提供的更小。 .NET 框架。”它没有说明CRC问题,所以我不知道是否已解决。
猜你喜欢
  • 2014-11-09
  • 1970-01-01
  • 2010-09-06
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
相关资源
最近更新 更多