Обнаружение пароля 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. Есть ли какой-либо флаг, который нужно установить, чтобы заставить работать пароль?