Обнаружение пароля ziparchive

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

Код:

[zip UnzipOpenFile:unzipFilename Password:zipPassword] 

будут:

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

  • разархивируйте файлы без пароля, когда zipPassword равен нулю

НО

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

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

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

1 ответ

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

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

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

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

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

Другие вопросы по тегам