Я использую этот код ниже (в AppDelegate), чтобы успешно открыть/получить один файл, когда рассматриваемый файл имеет собственное расширение моего приложения и выбирается из приложения «Файлы».
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
let sharedItem = FileItem()
sharedItem.path = url
sharedItem.name = url.lastPathComponent
sharedItem.image = self.loadUIImage(fileURL: url)
let pickFilesViewController = self.window?.rootViewController as? FirstViewController
pickFilesViewController?.selectedFiles.append(sharedItem)
pickFilesViewController?.filesTableView.reloadData()
return true
}
Теперь, когда я выбираю несколько похожих файлов в приложении «Файлы» и нажимаю кнопку «Поделиться», мое приложение появляется в параметрах приложения с текстом «копировать в мое приложение». Однако, когда я нажимаю на него, в конце моего приложения я получаю только первый (прилагается)
Как я могу получить все выбранные файлы?
У этого Вопрос есть некоторые предложения, но они не работают, поскольку кажется, что путь, по которому отправляются все файлы, не всегда является папкой «Входящие» в зависимости от ряда факторов, которые мне еще предстоит определить.
Я определил, что при открытии вложений электронной почты файлы успешно отправляются в папку «Входящие». Но кажется, что выбор и, таким образом, отправка нескольких файлов из приложения «Файлы» в совершенно другую папку.
Когда я попытался открыть эту папку, содержащую первый выбранный/отправленный элемент, чтобы выполнить итерацию и получить остальные... Я получаю сообщение об ошибке, указывающее, что у моего приложения нет разрешения на доступ к этой папке
Опять же, есть ли способ получить все файлы сразу? Спасибо.
Вы нашли решение? @Asiimwe





Похоже, что в настоящее время нет способа сделать это без прямого доступа к папке, в которой он хранится, что на самом деле мне не нравится.
В моем приложении мы позволяем нашему расширению общего доступа принимать несколько файлов одновременно и обрабатывать его соответствующим образом. Возможно, вы могли бы попробовать это, пока ждете, пока яблоко нам что-нибудь даст.
Попробуйте поместить файлы в let documents = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true) let tempDocumentsDirectory: AnyObject = documents[0] as AnyObject