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를 사용했습니다. 희망이 당신을 위해 작동합니다.
아니요 이렇게하는 방법. 로컬 파일 만 추출 – ajjjjjjjj