Я загружаю ZIP-файл с URL-адреса в ViewControllerA и помещаю его в каталог документов, используя:
let documentsUrl:URL = (FileManager.default.urls(for: .documentDirectory, in: .allDomainsMask).first as URL?)!
let destinationFileUrl = documentsUrl.appendingPathComponent("zipFile.zip")
Когда я пытаюсь извлечь файл из ViewControllerB и распаковать его, используя:
let documentsUrl:URL = (FileManager.default.urls(for: .documentDirectory, in: .allDomainsMask).first as URL?)!
let destinationFileUrl = documentsUrl.appendingPathComponent("zipFile.zip")
do{
let file = try Zip.quickUnzipFile(destinationFileUrl)
}catch {
print("Error: \(error.localizedDescription)")
}
Это дает мне ошибку:
Error: The operation couldn’t be completed. (Zip.ZipError error 1.)
Но когда я пытаюсь сделать это в том же ViewController.т.е. если я пытаюсь загрузить файл в ViewControllerA и сразу же распаковать файл, он работает нормально:
let documentsUrl:URL = (FileManager.default.urls(for: .documentDirectory, in: .allDomainsMask).first as URL?)!
let destinationFileUrl = documentsUrl.appendingPathComponent("zipFile.zip")
Downloader.load(url: remoteURL, to: destinationFileUrl, completion: {
print("Downloaded.")
do{
let file = try Zip.quickUnzipFile(destinationFileUrl)
}catch {
print("Error: \(error.localizedDescription)")
}
})
Вещи, которые я проверил:
- Zip-файл существует вкаталог документов.
- Zip-файл имеет допустимый размер файла.
- Zip-файл имеет разрешения на чтение и запись.
Что мешает распаковать процесс между двумяразные ViewControllers?