создать архив 7zip с sharpcompress - PullRequest
       82

создать архив 7zip с sharpcompress

1 голос
/ 01 декабря 2011

Мне нужно сжать файл как 7zip с помощью SharpCompress: 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 ]

8 голосов
/ 25 января 2012

Я являюсь автором SharpCompress (спасибо, что попробовал его кстати), и сжатие 7Zip не поддерживается: http://sharpcompress.codeplex.com/wikipage?title=Supported%20formats

То, что вы написали, - это код для создания стандартного Zip-файла с LZMAсжатия.Возможно, мой код не создает надлежащий zip-файл, но также возможно, что созданный файл не может быть прочитан всеми программами.Формат Zip допускает сжатие LZMA, но не все программы могут этого ожидать.PeaZip (на основе кода архиватора 7Zip) извлекает Zip с помощью LZMA, но WinRAR этого не делает.

Если вам действительно нужен формат 7Zip, я советую использовать что-то еще.Лично я считаю, что формат 7Zip слишком сложен, и я рекомендую Zip или Tar, а затем просто выбрать вариант сжатия.

2 голосов
/ 01 декабря 2011

SharpCompress не поддерживает сжатие 7zip. Только распаковка, см .: http://sharpcompress.codeplex.com/ (таблица поддерживаемых форматов)

Вы можете использовать собственную библиотеку 7zip для сжатия или использовать обертку с открытым исходным кодом, например: http://sevenzipsharp.codeplex.com/

...