19

我有一个程序(用 C# 编写)直接读取/写入其数据(无需服务器直接访问文件)到 firebird 数据库文件。为了更好的交换,我想在导入/导出时(解)压缩它们,以便在 Internet 上进行更好的交换,而不需要外部程序来(解)压缩它们。

我知道#ziplib支持 Zip、GZip、Tar 和 BZip2。

您还知道哪些 C# 的免费压缩库?是否有支持 LZMA 的 .NET 库,以便我可以读/写“.7z”文件?

4

5 回答 5

25

7-zip 有一个免费的源代码,用于 LZMA 算法的公共域 C# SDK:

http://www.7-zip.org/sdk.html

于 2009-01-16T10:26:33.830 回答
22

Peter Bromberg 写了一篇很好的文章:

使用 C# 进行 7Zip (LZMA) 内存压缩

展示了一个简单的 C# SevenZip.Compression.Lzma.SevenZipHelper 类,用于使用 C# 对内存中的对象进行高压缩。向先前发布的 CookieCompression 实用程序添加新的 7Zip 格式 LZMA Cookie 压缩类。

于 2009-01-16T10:27:18.523 回答
7

你可以试试SevenZipSharp

于 2009-02-23T00:08:27.563 回答
4

这似乎是一个鲜为人知的事实,但 .NET 库包含打包/压缩 API

于 2009-01-16T10:29:09.610 回答
1

如果您正在编写单个文件,那么您可以将其视为流并使用内置GZipStream/ DeflateStream(尽管在我所做的一些测试中,#ZipLib 在比率和速度方面都优于 MS 产品)。或者在框架的某处有内置的 zip 支持。不过,我不知道 LZMA。

于 2009-01-16T10:29:13.637 回答