Estoy usando SevenZipSharp con transmisiones sin problema alguno.
SevenZip.SevenZipCompressor compressor = new SevenZip.SevenZipCompressor();
compressor.CompressionMethod = SevenZip.CompressionMethod.Lzma2;
compressor.CompressionLevel = SevenZip.CompressionLevel.Normal;
compressor.CompressStream(ms, compressedStream);
En la línea final, "ms" es una secuencia que quiero comprimir, digamos un MemoryStream. "Compressedstream" es la corriente Quiero zip a, que puede ser o bien otra MemoryStream o incluso un FileStream ...
para la descompresión:
SevenZip.SevenZipExtractor extractor = new SevenZip.SevenZipExtractor(compressedStream);
extractor.ExtractFile(0, decompressedStream);
El SevenZipExtractor no tiene un método corriente de descompresión, así que uso ExtractFile() en su lugar.
Muy fácil. Y antes de cualquier parte del código de arriba se llama debo especificar el archivo DLL con 7zip:
SevenZip.SevenZipBase.SetLibraryPath(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\\7-zip\\7z.dll");
En mi caso, no junte el 7z.dll con mi aplicación, 7zip se instala por separado en la máquina .
Todo en super muy fácil. Descargué SevenZipSharp de codeplex - http://sevenzipsharp.codeplex.com/ y 7-zip desde http://www.7-zip.org/.
Esto funciona. Tenga en cuenta que SevenZipExtractor.DecompressStream arroja un error si lo usa como era de esperar. – Kaganar
Sé que esto es viejo, pero parece que no puedo obtener el 7z.dll para cargar/funcionar correctamente. Puedo obtener 7za.dll para cargar/trabajar, pero solo soporta .7z, y estoy buscando soporte para .zip. ¿Dónde/qué 7z.dll es el dll "correcto" para obtener? ¡Gracias! –