2009-01-16 7 views
16

J'ai un programme (écrit en C#) qui lit/écrit ses données directement (accès direct aux fichiers sans serveur) aux fichiers de base de données firebird. Pour un meilleur échange, je veux les (dé) compresser à l'import/export pour un meilleur échange sur internet sans avoir besoin d'un programme externe pour les (dé) compresser.Librairie de compression libre pour C# qui supporte 7zip (LZMA)

Je connais #ziplib qui prend en charge Zip, GZip, Tar et BZip2. Quoi d'autre bibliothèques de compression libre pour C# connaissez-vous? Y at-il une bibliothèque .NET qui prend en charge LZMA afin que je puisse lire/écrire des fichiers ".7z"?

Répondre

20

Il y a un bon article écrit par Peter Bromberg:

7Zip (LZMA) In-Memory Compression with C#

Affiche une classe C SevenZip.Compression.Lzma.SevenZipHelper simple permettant une compression élevée de objets en mémoire avec C#. Ajoute une nouvelle classe 7Zip format LZMA Cookie Compression à l'utilitaire CookieCompression précédemment publié.

24

7-zip a un code source libre, domaine public SDK C# pour l'algorithme LZMA:

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

+9

Il pourrait être intéressant de souligner que son code source libre, domaine public, et en C# :) –

+1

@ Jon Skeet: Vous ar droit. Ajouté cette information. –

4

Il semble être tout à fait un fait peu connu, mais la bibliothèque .NET comprend packaging/compression API

+0

Voici un exemple utilisant cette API: http://www.syntaxwarriors.com/2012/zip-files-using-c-net-without-any-extra-libraries/ – JensB

+0

Cette MS est-elle spécifique? Maintenant, je ne voudrais plus utiliser une solution MS uniquement. Je veux dire que si j'emballe un fichier, je m'attendrais à ce qu'il soit également utilisé sur des machines non-MS. – tmighty

1

Si vous écrivez des fichiers individuels, alors vous pouvez le traiter comme un ruisseau et utiliser le intégré GZipStream/DeflateStream (bien que Dans certains tests, #ZipLib a surpassé l'offre MS en termes de ratio et de vitesse. Ou il y a un support zip intégré quelque part dans le cadre. Je ne sais pas à propos de LZMA, cependant.

7

Vous pouvez essayer SevenZipSharp

+2

Il est sous LGPL v3.0 si quelqu'un a besoin de la licence. –

-3

Attention: GZipStream a une limitation de la taille de 4Gb

+0

s'il vous plaît référez-vous à http://stackoverflow.com/questions/505190/net-deflatestream-4gb-limit –

Questions connexes