Verifica la condizione per un file zip in UIDocumentPickerViewController
Questo è il mio codice per chiamare UIDocumentPickerViewController per scegliere i file per il mio aggiornamento del firmware che devono essere .zip
solo. Quando premo il pulsante "Seleziona", viene visualizzata la vista del selettore di documenti:
@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)
}
}
Al momento è possibile aprire i file in .docx
formato, ma è necessario che l'utente scelga solo un formato: un file zip.
Non posso presentare quello che ho fatto finora perché non sono in grado di trovare una soluzione. C'è un modo per verificare la presenza di un file zip o semplicemente vietare la selezione di altri formati? Grazie!
Risposte
Inizializza il DocumentPicker con l'elenco dei tipi supportati.
let zip = ["com.pkware.zip-archive"]
let importMenu = UIDocumentPickerViewController(documentTypes: zip, in: .import)
Ecco un elenco delle UTI supportate
Nell'estensione della mia vista utilizzo i UIDocumentPickerDelegate
e nella funzione controllo se l'ultimo componente del mio file è 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"
}
}