使用 sharpcompress 创建一个 7zip 存档
Posted
技术标签:
【中文标题】使用 sharpcompress 创建一个 7zip 存档【英文标题】:create an 7zip archive with sharpcompress 【发布时间】:2011-12-01 01:55:49 【问题描述】:我需要使用 SharpCompress 将文件压缩为 7zip:http://sharpcompress.codeplex.com
我做了如下:
using (var archive = ZipArchive.Create())
archive.AddEntry("CompressionTest.pdb", new FileInfo("CompressionTest.pdb"));
using (Stream newStream = File.Create("CompressionTest212.7z"))
archive.SaveTo(newStream, SharpCompress.Common.CompressionType.LZMA);
压缩过程成功完成。但是,使用 7z (http://www.7-zip.org/download.html) 或 winrar 都无法提取压缩文件。
我不知道是否有人也遇到了同样的问题并知道如何解决它?
提前致谢。
【问题讨论】:
【参考方案1】:我是 SharpCompress 的作者(感谢您顺便尝试一下)并且不支持 7Zip 压缩:http://sharpcompress.codeplex.com/wikipage?title=Supported%20formats
您编写的是用于创建具有 LZMA 压缩的标准 Zip 文件的代码。我的代码可能没有创建正确的 zip 文件,但也有可能创建的文件无法被所有程序读取。 Zip 格式允许 LZMA 压缩,但并非所有程序都期望它。 PeaZip(基于 7Zip 存档器代码)确实使用 LZMA 提取 Zip,但 WinRAR 不会。
如果您确实需要 7Zip 格式,我建议您使用其他格式。就个人而言,我认为 7Zip 格式过于复杂,建议使用 Zip 或 Tar,然后选择您喜欢的压缩方式。
【讨论】:
【参考方案2】:SharpCompress 不支持 7zip 压缩。只解压,见:http://sharpcompress.codeplex.com/(支持的格式表)
您可以使用 7zip 的本机库进行压缩,或使用开源包装器,例如:http://sevenzipsharp.codeplex.com/
【讨论】:
谢谢。但是,压缩似乎有效,但与使用 7-zip.org 中的 7z 略有不同 好吧,最好问问作者,但我怀疑这个功能是否被支持,他肯定会推广它。它是否仍在开发中?以上是关于使用 sharpcompress 创建一个 7zip 存档的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 sharpcompress 解压 .xz (lzma2) 文件
SharpCompress & LZMA2 7z 存档 - 特定文件的提取速度非常慢。为啥?备择方案?
如何使用 Sharpcompress .net 从 ZIP 存档中删除单个条目