AFN 다운로드 파일 압축 해제 파일 및 정지점 전송
압축 해제 파일 다운로드: 파일 다운로드 용 제3자 라 이브 러 리: AFNetWorking 압축 해제 파일 용 제3자 라 이브 러 리: SSZipArchive
#import "DownloadFileManager.h"
#import "SSZipArchive.h"
#import "PCH.h"
@interface DownloadFileManager ()
@end
@implementation DownloadFileManager
-(void)download
{
//1.
AFHTTPSessionManager *manager =[AFHTTPSessionManager manager];
NSURL *url = [NSURL URLWithString:@"http://192.168.2.189:8080/DSFA/news/apptest.zip"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
//2.
/*
:
:progress downloadProgress
:destination ( )
targetPath:
response:
:completionHandler
filePath:
*/
/*
:
:
downloadProgress.completedUnitCount :
downloadProgress.totalUnitCount:
:destination , block (NSURL ),
targetPath: tmp,
response:
:completionHandler
response:
filePath: , destination
error:
*/
NSURLSessionDownloadTask *download = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
//
//completedUnitCount
//totalUnitCount
NSLog(@"%f",1.0 *downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);
} destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
/**
* 1:1: :NSUrl *url = [NSUrl urlWithString:path]; 2: file url,NSUrl *url = [NSURL fileURLWithPath:fullPath];
2:
*
*/
NSString *fullPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:response.suggestedFilename];
NSLog(@"targetPath:%@",targetPath);
NSLog(@"fullPath:%@",fullPath);
return [NSURL fileURLWithPath:fullPath];
} completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
/**
*filePath:
*/
NSLog(@"%@",filePath);
NSString *imgFilePath = [filePath path];// NSURL NSString
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
[self releaseZipFilesWithUnzipFileAtPath:imgFilePath Destination:path];
}];
//3. Task
[download resume];
}
//
- (void)releaseZipFilesWithUnzipFileAtPath:(NSString *)zipPath Destination:(NSString *)unzipPath{
NSError *error;
if ([SSZipArchive unzipFileAtPath:zipPath toDestination:unzipPath overwrite:YES password:nil error:&error delegate:self]) {
NSLog(@"success");
NSLog(@"unzipPath = %@",unzipPath);
}else {
NSLog(@"%@",error);
}
}
#pragma mark - SSZipArchiveDelegate
- (void)zipArchiveWillUnzipArchiveAtPath:(NSString *)path zipInfo:(unz_global_info)zipInfo {
NSLog(@" 。");
}
- (void)zipArchiveDidUnzipArchiveAtPath:(NSString *)path zipInfo:(unz_global_info)zipInfo unzippedPath:(NSString *)unzippedPath{
NSLog(@" !");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.