обнаружение пароля ziparchive - PullRequest
2 голосов
/ 11 января 2012

Кто-нибудь знает способ определить, установлен ли пароль в файле zip при попытке разархивировать с помощью библиотеки ZipArchive?

код:

[zip UnzipOpenFile:unzipFilename Password:zipPassword] 

будет:

  • разархивировать файлы с паролем, если установлен zipPassword.

  • распаковать файлы без пароля, если zipPassword равен nil

НО

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

Кажется беспорядочным делать это, проверить нулевую длину и, если это так, запросить у пользователя пароль для другой попытки?

Наверняка должен быть способ узнать, есть ли в данном файле zip пароль?

1 Ответ

0 голосов
/ 05 октября 2012

Я использую утилиту ZipArchive для импорта заархивированного файла в приложении Objective C. Часть кода

if ([za UnzipOpenFile:[url path] Password:@"XYZ"]){

     BOOL ret = [za UnzipFileTo: documentsDirectory overWrite: YES];

Я обнаружил, что мой защищенный паролем заархивированный файл распаковывается по вышеуказанному коду, даже без использования пароля (с помощью [za UnzipOpenFile: [url path]]) или даже когда указан неправильный пароль, как указано выше.

Заархивированный файл был создан с помощью опции zip -e на Mac. Есть ли какой-либо флаг, который необходимо установить, чтобы определение пароля работало?

...