使用 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 存档中删除单个条目

使用 SharpCompress 库发布 WinRT 应用程序

Sharpcompress 多 rar 提取进度

使用 SharpCompress 识别与给定 RAR 存档关联的卷