2013-07-10 2 views
0

Кто-нибудь знает инструмент распаковки из info-zip? Я бы использовал эту программу в своем приложении .NET. Во-первых, я дать пользователю возможность выбрать почтовый файл и целевую папку над моей GUI, а затем я начинаю новый процесс с помощью следующей команды:Разархивировать файлы, зашифрованные паролем, в C#

Process.Start("cmd.exe", "/c unzip -d target-dir zip-file"); 

Это работает в значительной степени до сих пор. Но теперь я мог бы также извлечь архивы с зашифрованными паролями. Поэтому я поместил текстовое поле для ввода пароля в моей форме и отправил его с параметром -P в инструмент распаковки. Но есть ли возможность проверить погоду, архив зашифрован перед отображением поля пароля? Потому что я буду запрашивать только пароль, если это необходимо.

+0

Я представляю себе почтовый инструмент потребовалось бы, чтобы проверить это. Вы уже используете один названный info-zip, не так ли? Имеет ли этот инструмент какие-либо функции для проверки этого? Если нет, я думаю, вы можете попробовать другой инструмент. Возможно, что-то вроде DotNetZip. – David

+0

Ну, я думаю, вы могли бы прочитать stderr и посмотреть, говорит ли он, что вам нужен пароль, а затем запросить пользователя. Вы на милость любого инструментария, который вы используете здесь. – Gray

+0

Не было бы намного проще использовать [SharpZipLib] (http://www.icsharpcode.net/opensource/sharpziplib/)? Не нужно запускать командную строку separte и поддерживает распаковку защищенных архивов – rene

ответ

0

Если вы действительно хотите использовать unzip, вы можете запустить первый unzip -Z, а 5-й элемент, который будет возвращен, будет «t» (текст) или «b» (двоичный). Если они являются капиталом, то архив зашифрован.

Ссылки:

ZipInfo Manual

Unzip Manual

Смежные вопросы