使用sharpcompress创建一个7zip存档

时间:2011-12-01 01:55:50

标签: c# 7zip sharpcompress

我需要使用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提取压缩文件。

我不知道是否有人也遇到了同样的问题并想知道如何解决它?

提前致谢。

2 个答案:

答案 0 :(得分:8)

我是SharpCompress的作者(感谢您顺便尝试一下)并且不支持7Zip压缩:http://sharpcompress.codeplex.com/wikipage?title=Supported%20formats

您编写的是使用LZMA压缩创建标准Zip文件的代码。我的代码可能无法创建正确的zip文件,但也可能是所有程序都无法读取创建的文件。 Zip格式允许LZMA压缩,但并非所有程序都可以预期。 PeaZip(基于7Zip归档代码)确实用LZMA提取Zip,但WinRAR没有。

如果您真的需要7Zip格式,我建议您使用其他内容。就个人而言,我认为7Zip格式过于复杂,建议使用Zip或Tar,然后选择压缩选择。

答案 1 :(得分:2)

SharpCompress不支持7zip压缩。只有解压缩,请参阅:http://sharpcompress.codeplex.com/(支持的格式表)

您可以使用7zip的本机库进行压缩,或者使用开源包装器,如:http://sevenzipsharp.codeplex.com/