распакуйте загруженный zip-файл, используя SSZipArchive - PullRequest
0 голосов
/ 14 декабря 2018

код, который я использовал для загрузки книги:
// Создать URL для исходного файла, который вы хотите загрузить, пусть fileURL = URL (строка: myFileURL)

    let sessionConfig = URLSessionConfiguration.default
    let session = URLSession(configuration: sessionConfig)

    let request = URLRequest(url:fileURL!)

    let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in
        if let tempLocalUrl = tempLocalUrl, error == nil {
            // Success
            if let statusCode = (response as? HTTPURLResponse)?.statusCode {
                print("Successfully downloaded. Status code: \(statusCode)")

                DispatchQueue.main.async {
                    self.toast(msg: "Download completed")
                    self.activityIndicator.stopAnimating()
                    self.activityIndicator.isHidden = true

                }

            }

            do {
                try FileManager.default.copyItem(at: tempLocalUrl, to: destinationFileUrl)
            } catch (let writeError) {
                print("Error creating a file \(destinationFileUrl) : \(writeError)")
            }

        } else {
            print("Error took place while downloading a file. Error description: %@", error?.localizedDescription);
        }

после этого япопытался разархивировать файл epub из destinationFileUrl с помощью кода

let status = SSZipArchive.unzipFile(atPath: destinationFileUrl , toDestination:destPath, delegate:self)

значение состояния возвращает значение false, поэтому выходная папка содержит только папку META-INF без элементов

Как мне разархивироватьэпуб ​​правильно

1 Ответ

0 голосов
/ 29 июля 2019

Пожалуйста, укажите это - >> Не удается извлечь файл после разархивирования URL загруженного файла

     var filepath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)[0]
                filepath += "/\(UUID().uuidString)"
                let url = URL(fileURLWithPath: filepath)
                do {
                    try FileManager.default.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil)
                    let done = SSZipArchive.unzipFile(atPath: path!, toDestination: url.path)
                    if done{
                        let items = try FileManager.default.contentsOfDirectory(atPath: url.path)
                        print(items)
                   }
                } catch let error as NSError{
                    print(error)
                }
...