Periksa kondisi file zip di UIDocumentPickerViewController

Aug 21 2020

Ini adalah kode saya untuk memanggil UIDocumentPickerViewController untuk memilih file untuk pembaruan firmware saya yang harus .ziphanya. Saat saya menekan tombol "Pilih", Tampilan Pemilih Dokumen muncul:

@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)
  }
}

Saat ini dimungkinkan untuk membuka file dalam .docxformat, tetapi saya hanya perlu membiarkan pengguna memilih satu format - file zip.

Saya tidak dapat mempresentasikan apa yang telah saya lakukan selama ini karena saya tidak dapat menemukan solusi. Apakah ada cara untuk memeriksa file zip atau hanya melarang memilih format lain? Terima kasih!

Jawaban

Jithin Aug 21 2020 at 13:31

Inisialisasi DocumentPicker dengan daftar tipe yang didukung.

    let zip = ["com.pkware.zip-archive"]
    let importMenu = UIDocumentPickerViewController(documentTypes: zip, in: .import)

Berikut daftar UTI yang didukung

Lilya Aug 24 2020 at 10:16

Dalam ekstensi tampilan saya, saya menggunakan UIDocumentPickerDelegatedan dalam fungsi saya memeriksa apakah komponen terakhir file saya adalah 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"
    }
}