解决方法
我正在使用SevenZipSharp与流没有问题,所以有史以来.
SevenZip.SevenZipCompressor compressor = new SevenZip.SevenZipCompressor(); compressor.CompressionMethod = SevenZip.CompressionMethod.Lzma2; compressor.CompressionLevel = SevenZip.CompressionLevel.Normal; compressor.CompressStream(ms,compressedStream);
在最后一行,“ms”是我要压缩的流,我们来说一个MemoryStream. “compressedStream”是我要压缩的流,它可以是另一个MemoryStream或甚至FileStream …
解压缩:
SevenZip.SevenZipExtractor extractor = new SevenZip.SevenZipExtractor(compressedStream); extractor.ExtractFile(0,decompressedStream);
SevenZipExtractor没有解压缩流方法,所以我使用ExtractFile().
好简单.在上述任何代码被调用之前,我必须指定7zip dll:
SevenZip.SevenZipBase.SetLibraryPath(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\\7-zip\\7z.dll");
在我的情况下,我不捆绑7z.dll与我的应用程序,7-zip单独安装在机器上.
一切都超级容易.我从Codeplex – http://sevenzipsharp.codeplex.com/下载了SevenZipSharp,从http://www.7-zip.org/下载了7-zip.