//获得NSURLSession对象
NSURLSession * session = [NSURLSession sharedSession];
//创建任务
NSURLSessionDownloadTask * tast = [session downloadTaskWithURL:[NSURL URLWithString:@"http://xxx"] completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"文件下载完毕");
NSLog(@"文件下载到了这里%@",location);
//有人会有疑问 我没有指定下载路径 它把文件下载哪里了
//其实这个方法把文件下载到沙盒里面的tmp文件中了,不论多大的文件,都可以。
//它默认的下载方式是下载一点存一点方法tmp文件中
//注意:但是tmp是个临时文件夹,也就是说下载完成的某个时刻这个文件会随时消失的
//要想把下载的文件存到手机中不被删除怎么做呢?
//可以把下载好的文件剪切到沙盒中的caches当中
//文件要存放的真实路径 response.suggestedFilename:用服务器给的那个文件名命名
NSString * file = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]stringByAppendingPathComponent:response.suggestedFilename];
//剪切方法
NSFileManager * mgr = [NSFileManager defaultManager];
//从下载路径 剪切到要保存的路径当中
//[mgr moveItemAtURL:@"下载路径" toURL:@"保存路径" error:nil];
[mgr moveItemAtURL:location toURL:[NSURL fileURLWithPath:file] error:nil];
}];
//启动任务 就立即会去下载文件
[tast resume];
以上代码就是简单的大文件下载,没有列表格说明,直接在代码中给以解释说明希望对一些有需要的朋友有帮助。
- 但是这个下载方式会有很多问题,比如说看不到下载进度,不能暂停和继续下载
- 后期我会持续更新大文件下载的博客,如果你喜欢点颗爱心持续关注我
- 最后如果我写哪里有什么不对的情况下,还请大神指正。
网友评论