10
A
回答
0
不幸的是SevenZipSharp只是一个围绕7z应用程序的COM包装。所以没有简单的流支持。也许可以通过<SevenZipCompressor Instance>.CustomParameters.Add()
指示它将文件输出到stdout
,然后可以在应用程序中以某种方式读取该文件。但这只是推测性的,我没有直接提示如何让这个工作。
13
我使用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,7zip的是seperately安装在机器上。
总之超级容易。我从codeplex下载了SevenZipSharp - http://sevenzipsharp.codeplex.com/,从http://www.7-zip.org/下载了7-zip。
相关问题
- 1. 压缩与SevenZipSharp
- 2. SevenZipSharp快速压缩
- 3. SharpZipLib不压缩内存流
- 4. 使用C#SevenZipSharp - 压缩时出错
- 5. 将压缩文件解压缩到内存流 - C#
- 6. 在Silverlight中压缩内存流
- 7. 压缩内存缓存
- 8. SevenZipSharp CompressStreamDictionary错误
- 9. 压缩内存流,但保持流(不创建文件)?
- 10. 正确使用GZIP流和内存流压缩CSV
- 11. 虾PDF压缩,压缩的内容流,它有什么作用
- 12. 内存压缩分配器
- 13. 压缩和解压流
- 14. 如何压缩流?
- 15. 解压缩GZIP流
- 16. 流的Delta压缩
- 17. 在内存流中解压缩文件(odt或docx)
- 18. 压缩文件的仅内存流式传输
- 19. 在内存中压缩/解压缩字符串
- 20. 如何解压缩压缩的内核
- 21. 在C中解压缩流#
- 22. 流分析和压缩avro
- 23. ElasticMapReduce流式压缩输出
- 24. 为silverlight解压缩gzip流
- 25. pdfbox写压缩对象流
- 26. 并行解压缩流
- 27. Zlib兼容压缩流?
- 28. 在内存中解压缩ArchiveInputStream
- 29. 使用zlib进行内存解压缩
- 30. 内存不足上Gzip已解压缩
This Works。请注意,如果您按照预期使用SevenZipExtractor.DecompressStream,则会引发错误。 – Kaganar 2013-01-03 22:24:22
我知道这是旧的,但我似乎无法让7z.dll加载/正常工作。我可以让7za.dll加载/工作,但它只支持.7z,我正在寻找.zip支持。哪里/什么7z.dll是“正确”的DLL获取?谢谢! – 2016-08-10 19:15:52