我有一个程序(用C#编写)直接读取/写入数据(没有服务器的直接文件访问)到firebird数据库文件。为了更好的交换,我希望(un)在导入/导出时压缩它们,以便通过互联网进行更好的交换,而无需外部程序来(压缩)它们。
我知道#ziplib支持Zip,GZip,Tar和BZip2。
您知道C#的其他免费压缩库吗? 是否有支持LZMA的.NET库,因此我可以读/写“.7z”文件?
答案 0 :(得分:25)
7-zip有一个免费的源代码,LZMA算法的公共域C#SDK:
答案 1 :(得分:20)
Peter Bromberg撰写了一篇很好的文章:
7Zip (LZMA) In-Memory Compression with C#
显示一个简单的C#
SevenZip.Compression.Lzma.SevenZipHelper
类启用高压缩 使用C#的内存中对象。添加一个新的 7Zip格式LZMA Cookie压缩 类到以前发表的 CookieCompression实用程序。
答案 2 :(得分:7)
您可以尝试SevenZipSharp
答案 3 :(得分:4)
这似乎是一个鲜为人知的事实,但.NET库包含packaging/compression API
答案 4 :(得分:1)
如果您正在编写单个文件,那么您可以将其视为流并使用内置的GZipStream
/ DeflateStream
(尽管在某些测试中,我做过,#ZipLib超出了MS的要求比率和速度)。或者在框架中的某处有内置的zip支持。不过,我不知道LZMA。