Путь к загруженному файлу с помощью Alamofire4 (Swift3)

Я загружаю zip-файл с Alamofire4 и распаковываю его с помощью SSZipArchive, но распаковка не работает. Я не уверен, что путь к загруженному файлу подходит для Alamofire.

Вот код:

let destination: DownloadRequest.DownloadFileDestination = { _, _ in
    var documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
    return (documentsURL, [.removePreviousFile])

}
Alamofire.download(urlString, method: .get, parameters: parameters, encoding: JSONEncoding.default, to: destination)
.response{ response in

   if response.error == nil {

     let filename = response.response?.suggestedFilename
     var folderDestination=response.destinationURL?.path
     folderDestination=folderDestination?.appending("/\(nameCategory)")

     archiveToUnzip=(folderDestination?.appending("/\(filename!)"))!

     //unzip
     let successUnZip=SSZipArchive.unzipFile(atPath: archiveToUnzip, toDestination:folderDestination!)

     if !successUnZip {
        SpeedLog.print("Problem unzip")
     }
  }
}

Он отображает "Проблема распаковать", так что я ошибаюсь в пути к файлу zip?

2 ответа

Просто вы не можете создать имя папки, добавив путь, вам нужно создать папку отдельно. Вот код, попробуйте это!

 let filename = response.response?.suggestedFilename
 var folderDestination=response.destinationURL?.path
 folderDestination=folderDestination?.appending("/\(nameCategory)")
 try! FileManager.default.createDirectory(at: folderDestination!, withIntermediateDirectories: false, attributes: nil)

 archiveToUnzip=(folderDestination?.appending("/\(filename!)"))!

 //unzip
 let successUnZip=SSZipArchive.unzipFile(atPath: archiveToUnzip,toDestination:folderDestination!)

Перед разархивированием попытайтесь проверить правильность всех путей:

    guard let zipPath = (folderDestination?.appending("/\(filename!)"))! else {
         print("Error: zipPath are not correct: \(zipPath)")    
         return
    }

    guard let unzipPath = folderDestination! else {
        print("Error: unzipPath are not correct: \(unzipPath)")
        return
    }

    let success = SSZipArchive.unzipFile(atPath: zipPath, toDestination: unzipPath)
    if !success {
        print("Error: unzipFile operation failed")
        return
    }
Другие вопросы по тегам