在 UIDocumentPickerViewController 中检查 zip 文件的条件
Check condition for a zip file in UIDocumentPickerViewController
这是我调用 UIDocumentPickerViewController 来选择我的固件更新文件的代码,这些文件必须是 .zip
。当我按下“Select”按钮时,文档选择器视图显示:
@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 文件或只是禁止选择其他格式?谢谢!
使用支持的类型列表初始化文档选择器。
let zip = ["com.pkware.zip-archive"]
let importMenu = UIDocumentPickerViewController(documentTypes: zip, in: .import)
Here 支持的 UTI 列表
在我的视图扩展中,我使用 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"
}
}
这是我调用 UIDocumentPickerViewController 来选择我的固件更新文件的代码,这些文件必须是 .zip
。当我按下“Select”按钮时,文档选择器视图显示:
@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 文件或只是禁止选择其他格式?谢谢!
使用支持的类型列表初始化文档选择器。
let zip = ["com.pkware.zip-archive"]
let importMenu = UIDocumentPickerViewController(documentTypes: zip, in: .import)
Here 支持的 UTI 列表
在我的视图扩展中,我使用 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"
}
}