2017-05-17 5 views
1

SSZipArchive을 사용하여 URL (http://www.colorado.edu/conflict/peace/download/peace.zip)에서 파일의 압축을 풉니 다.SSZipArchive URL에서 압축 해제

SSZipArchive.unzipFile(atPath: path, toDestination: documentsPath, progressHandler: { 
  1. SSZipArchive를 사용하여 URL에서 파일을 추출 할 수 있습니다 :이를 위해 나는 기능을 사용하고?
  2. 예, URL을 에 전달하려면 어떻게합니까 ()?
+0

아니요 이렇게하는 방법. 로컬 파일 만 추출 – ajjjjjjjj

답변

0

URL에서 파일을 다운로드하지 않고 직접 압축을 해제 할 수 없습니다. 당신이 원하는 곳이 내가이 작업을 수행하는 방법이다
,

func downLoad() { 
    let url : String = "http://www.colorado.edu/conflict/peace/download/peace.zip" 
    var localPath: NSURL? 
    Alamofire.download(.GET,url, 
     destination: { (temporaryURL, response) in 
      let directoryURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] 
      let pathComponent = response.suggestedFilename 
      localPath = directoryURL.URLByAppendingPathComponent(pathComponent!) 
      return localPath! 
    }) 
     .response { (request, response, _, error) in 
      SwiftEventBus.post("DownloadedSuccessfully", sender: localPath!) 
    } 
} 

컨텐츠를 다운로드 한 후 압축을 풉니 다.

SwiftEventBus.onMainThread(self, name:"DownloadedSuccessfully") 
    { 
     result in 

     let resultStatus = result.object as! NSURL 

     guard let zipPath: String = resultStatus.path! as String else { 
      return 
     } 
     guard let unZipPath = unzipPath() else { 
      return 
     } 

     let success = SSZipArchive.unzipFileAtPath(zipPath, toDestination: unZipPath) 
     print(unZipPath) 
     if !success { 
      return 
     } 
    } 

나는 파일의 압축을 해제하고 파일의 데이터에 액세스 할 수 있습니다 거기에서 문서 디렉토리

func unzipPath() -> String? { 
    let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] 
    let url = NSURL(fileURLWithPath: path) 
    do { 
     try NSFileManager.defaultManager().createDirectoryAtURL(url, withIntermediateDirectories: true, attributes: nil) 
    } catch { 
     return nil 
    } 
    if let path = url.path { 
     return path 
    } 
    return nil 
} 

에 저장. 여기에서는 제 3 자 프레임 워크 인 Alamofire와 swiftEventBus를 사용했습니다. 희망이 당신을 위해 작동합니다.