Проверить состояние zip-файла в UIDocumentPickerViewController
Это мой код для вызова UIDocumentPickerViewController, чтобы выбрать файлы для моего обновления прошивки, которые должны быть .zipтолько. Когда я нажимаю кнопку «Выбрать», появляется окно выбора документов:
@IBAction func selectButtonAction(_ sender: UIButton) {
if sender.title(for: .normal) == "Select"{
if let controller = (UIApplication.shared.delegate as? AppDelegate)?.currentViewController {
let importMenu = UIDocumentPickerViewController(documentTypes: [String(kUTTypeArchive)], in: .open )
importMenu.delegate = self
importMenu.modalPresentationStyle = .formSheet
controller.present(importMenu, animated: true, completion: nil)
}
} else {
changeDFUItemsDesign(isFileURLNil: true)
}
}
Прямо сейчас можно открывать файлы в .docxформате, но мне нужно позволить пользователю выбрать только один формат - zip-файл.
Я не могу представить, что я сделал до сих пор, потому что не могу найти решение. Есть ли способ проверить наличие zip файла или просто запретить выбор других форматов? Спасибо!
Ответы
Выполните инициализацию DocumentPicker со списком поддерживаемых типов.
let zip = ["com.pkware.zip-archive"]
let importMenu = UIDocumentPickerViewController(documentTypes: zip, in: .import)
Вот список поддерживаемых ИМП
В расширении моего представления я использую UIDocumentPickerDelegateи в функции, проверяю, является ли последний компонент моего файла zip:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
if let fileURL = urls.first, fileURL.pathExtension == "zip" {
self._fileURL = fileURL
self.fileNameLabel.text = _fileURL?.lastPathComponent
} else {
_fileURL = nil
fileNameLabel.text = "Select file"
}
}