Подтвердить что ты не робот

Декомпрессия ZIP файлов, защищенных паролем, с помощью .NET 4.5

Microsoft представляет усовершенствования для обработки файлов ZIP в .NET 4.5 в пространстве имен System.IO.Compression. А именно классы ZipArchive и ZipFile. Тем не менее, я еще не видел способ использовать встроенную обработку файлов ZIP для файлов с защитой паролем. Есть ли способ достичь этого? (Я знаю, что есть довольно хорошие библиотеки сторонних zip файлов, это не вопрос.)

4b9b3361

Ответ 1

К сожалению, нет. Внутри .Net Framework 4.5 нет поддержки для защищенных паролем zip файлов. В этом случае вам нужно переключиться на одну из известных сторонних библиотек.

Ответ 2

Как указано, DotNetZip является вашим другом. Распаковка вашего zip файла так же просто, как

using ( ZipFile archive = new ZipFile( @"c:\path\to\your\password\protected\archive.zip",) )
{
  archive.Password = "your-pass-word-here" ;
  archive.Encryption = EncryptionAlgorithm.PkzipWeak ; // the default: you might need to select the proper value here
  archive.StatusMessageTextWriter = Console.Out;

  archive.ExtractAll( @"c:\path\to\unzip\directory\", ExtractExistingFileAction.Throw ) ;
}

По моему опыту, DotNetZip работает примерно так же быстро, как с открытым исходным кодом unzip в Info-Zip и использует примерно такой же объем памяти.

Ответ 3

Ионный метод является удивительным. Я пробовал три других подхода, и это, безусловно, самое лучшее. Не тратьте время, просто используйте его.

https://dotnetzip.codeplex.com/wikipage?title=PS-Examples

Поддержка зашифрованных паролей и других параметров zip.

Ответ 4

При взгляде на методы, предоставленные рамкой 4.5, не существует метода, который позволяет использовать пароли с zip файлами. Как уже упоминалось в вашем вопросе, третья сторона будет вашим лучшим выбором.

Ответ 5

Кажется, что нет никакой поддержки для защищенных паролем zip файлов в собственной библиотеке .net 4.5, подобно тому, как в Windows Explorer не поддерживается поддержка даже в Windows 10! Некоторые люди сообщили, что у них есть проблемы с коррупцией в zip, используя сторонний DotNetLib, поэтому убедитесь, что вы активно тестируете, если вы идете по этому пути, или попробуйте SharpZipLib.