FileManager не может найти файл UIDocumentBrowserViewController

Я создал новое "приложение на основе документов" в Xcode и пытаюсь использовать библиотеку Zip для выполнения некоторых операций: https://github.com/marmelroy/Zip

Под капотом Zip полагается на поиск файла через FileManager, однако по какой-то странной причине я продолжаю получать ошибку "файл не найден". Я добавил этот код в свойDocumentBrowserViewController, в котором говорится, что он не может найти только что выбранный файл.

// DocumentBrowserViewController.swift
func documentBrowser(_ controller: UIDocumentBrowserViewController, didPickDocumentsAt documentURLs: [URL]) {
   guard let sourceURL = documentURLs.first else { return }
   let fileManager = FileManager.default
   let exists = fileManager.fileExists(atPath: sourceURL.absoluteString)
   print(exists) // false
}

Я также пробовал использовать API-интерфейсы ресурсов с областью безопасности следующим образом:

// DocumentBrowserViewController.swift
func documentBrowser(_ controller: UIDocumentBrowserViewController, didPickDocumentsAt documentURLs: [URL]) {
   guard let sourceURL = documentURLs.first else { return }
   guard sourceURL.startAccessingSecurityScopedResource() else { return }
   let fileManager = FileManager.default
   let exists = fileManager.fileExists(atPath: sourceURL.absoluteString)
   print(exists) // false
   sourceURL.stopAccessingSecurityScopedResource()
}

А также используя NSFileCoordinator:

func documentBrowser(_ controller: UIDocumentBrowserViewController, didPickDocumentsAt documentURLs: [URL]) {
   guard let sourceURL = documentURLs.first else { return }
   guard sourceURL.startAccessingSecurityScopedResource() else { return }

   var error: NSError? = nil
   NSFileCoordinator().coordinate(readingItemAt: sourceURL, error: &error) { (url) in

      let fileManager = FileManager.default
      let exists = fileManager.fileExists(atPath: url.absoluteString)
      print(exists)
   }

   sourceURL.stopAccessingSecurityScopedResource()
}

Может ли кто-нибудь объяснить мне, почему FileMangerсообщает, что этого файла не существует? Я напечатал нашsourceURL и, похоже, это подходящее место.

0 ответов

Другие вопросы по тегам