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. 使用SevenZipSharp壓縮多卷?
- 4. SharpZipLib不壓縮內存流
- 5. 使用SevenZipSharp從內存壓縮文件,奇怪的錯誤
- 6. SevenZipSharp:中止正在進行壓縮
- 7. 使用C#SevenZipSharp - 壓縮時出錯
- 8. 將壓縮文件解壓縮到內存流 - C#
- 9. 在Silverlight中壓縮內存流
- 10. 保存壓縮內存流到文件流,endfile已損壞
- 11. 緩存的壓縮流C++
- 12. 壓縮內存緩存
- 13. SevenZipSharp CompressStreamDictionary錯誤
- 14. 正確使用GZIP流和內存流壓縮CSV
- 15. 壓縮內存流,但保持流(不創建文件)?
- 16. 壓縮到流
- 17. 壓縮流
- 18. 蝦PDF壓縮,壓縮的內容流,它有什麼作用
- 19. C內存壓縮機?
- 20. 內存壓縮分配器
- 21. lzma壓縮/從內存解壓C++
- 22. 壓縮和解壓流
- 23. 解壓縮trunctated壓縮流(放氣)
- 24. 使用Compression.DeflateStream壓縮和解壓縮流
- 25. JavaScript:數據流壓縮/解壓縮
- 26. 如何使用SevenZipSharp創建壓縮的SFX文件?
- 27. 解壓縮GZIP流
- 28. 如何壓縮流?
- 29. 流的Delta壓縮
- 30. 錯誤壓縮流
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