1

Alamofire4 で zip ファイルをダウンロードし、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")
     }
  }
}

「Problem unzip」と表示されますが、zipファイルへのパスを間違えていませんか?

4

2 に答える 2

0

パスを追加してフォルダー名を作成することはできません。フォルダーを個別に作成する必要があります。これがコードです これを試してください!

 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!)
于 2016-11-02T14:26:27.323 に答える
0

解凍する前に、すべてのパスが正しいことを確認してください。

    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
    }
于 2016-11-02T03:42:46.877 に答える