2016-11-02 4 views
1

Ich lade eine Zip-Datei mit Alamofire4 herunter und entpacke sie mit SSZipArchive, aber das Entpacken funktioniert nicht. Ich bin nicht sicher, ob der Pfad der heruntergeladenen Datei mit Alamofire gut ist. HierPfad zur heruntergeladenen Datei mit Alamofire4 (Swift3)

ist der Code:

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") 
    } 
    } 
} 

Es zeigt "Problem unzip", so bin ich falsch in dem Pfad zur ZIP-Datei?

Antwort

0

Bevor Versuch unzipping, dass alle Pfade korrekt waren zu überprüfen:

Sie
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 
    } 
0

einfach keinen Ordnernamen durch Anhängen des Pfad erstellen können, müssen Sie Ordner separat erstellen. Hier ist der Code versuch dies!

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!) 
+0

Ich habe dies versucht, aber der Versuch Wurf haben diesen Fehler: Domain = NSCocoaErrorDomain-Code = 512 „Unmöglich Datei«Bilder»in Ordner«Dokumente»zu speichern“ UserInfo = {NSFilePath =/Benutzer/Benutzername/Bibliothek/Entwickler/CoreSimulator/Geräte/3D7DE09C-CA8B-4E32-A048-2B33887CE47B/Daten/Container/Daten/Anwendung/xxxx/Dokumente/Bilder, NSUnderlyingError = 0x60800005bfc0 {Fehler Domain = NSPOSIXErrorDomain Code = 20 "Kein Verzeichnis"}}: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-800.0.58.6/src/swift/stdlib/public/core/ErrorType.swift, Zeile 178 Warum ist es kein Verzeichnis? – Ludo

Verwandte Themen