1

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

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

提前致谢。

4

2 回答 2

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,然后选择您喜欢的压缩方式。

于 2012-01-25T08:52:12.187 回答
2

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

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

于 2011-12-01T02:05:37.733 回答