【问题标题】:Unzip a file using SSZipArchive not extracting the contents of the file使用 SSZipArchive 解压缩文件而不是提取文件的内容
【发布时间】:2016-09-30 13:32:33
【问题描述】:

我正在使用SSZipArchive 提取文件的内容,我从互联网下载并保存在Documents 中。我下载的资源是zip文件的形式,下载成功后我会解压。

@IBAction func downloadData(sender: UIButton)
{       if let myAudioDataFromUrl = NSData(contentsOfURL: audioUrl){
                // after downloading your data you need to save it to your destination url
                if myAudioDataFromUrl.writeToURL(destinationUrl, atomically: true) {
                    print("file saved")
                    printTimestamp()
                    let folderName = "Aspire  Brochure"//audioUrl.lastPathComponent!.stringByReplacingOccurrencesOfString(".zip", withString: "")
                    let destination = documentsUrl.URLByAppendingPathComponent(folderName)
                    let fileManager = NSFileManager.defaultManager()
                    print("This is the folderName \(destinationUrl)")
                    print("This is the destination \(destination)")
                    let success = fileManager.fileExistsAtPath(destination.absoluteString) as Bool
                    if success == false {
                        do {
                            print("it is here")
                            try! fileManager.createDirectoryAtPath(destination.absoluteString.stringByReplacingOccurrencesOfString("file://", withString: ""), withIntermediateDirectories: true, attributes: nil)
                            print("it hascome here  ")
                        }
                    }
                 //   let success = fileManager.fileExistsAtPath(destPath) as Bool
                    print("trying to unzip the file")

                    //let fileManager = NSFileManager.defaultManager()
                    let checkFile = NSFileManager.defaultManager().fileExistsAtPath(destination.absoluteString.stringByReplacingOccurrencesOfString("file://", withString: ""))
                    print("this is the check value response \(checkFile)")
                    var tmp = SSZipArchive.unzipFileAtPath(destinationUrl.absoluteString, toDestination: destination.absoluteString )
                    //var tmp = SSZipArchive.unzipFileAtPath(destination.absoluteString.stringByReplacingOccurrencesOfString("file://", withString: ""), toDestination: destination.absoluteString )
                    print("unzipped the file \(tmp)")

                    } else {
                        print("error saving file")
                    }
                }
            }

正在创建文件,但没有提取任何内容。

【问题讨论】:

  • 检查您的目标路径和下载路径。如果 SSZipArchive.unzipFileAtPath 在给定路径中找不到文件,则返回 false。
  • @Jush,zip 存在,我正在以编程方式创建目标目录。

标签: ios swift unzip ssziparchive


【解决方案1】:

今天遇到这个问题花了我几个小时才弄明白。 SSZipArchive 在找不到 zip 文件时返回 false。这可能是因为您返回的 url 是 [NSURL absoluteString];,它的开头有 file://。只需在网址上调用[NSURL path];,它应该可以工作

【讨论】:

  • 哇,这么简单的修复;谢谢!!如果可以的话,我会勾选两次!
  • 哇,你让我开心。
  • 太棒了! :) 我也弄错了。我之前使用的是 absoluteString 。使用路径解决了我的问题。
猜你喜欢
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-04
  • 1970-01-01
相关资源
最近更新 更多