获取本地文件大小
+ (long long)fileSize:(NSString *)filePath {
if (![self fileExists:filePath]) {
return 0;
}
NSDictionary *fileInfo = [[NSFileManager defaultManager]attributesOfItemAtPath:filePath error:nil];
return [fileInfo[NSFileSize]longLongValue];
}
从已有大小处开始下载
- (void)downLoadWithURL:(NSURL *)url offset:(long long)offset {
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:0];
[request setValue:[NSString stringWithFormat:@"bytes=%lld-",offset] forHTTPHeaderField:@"Range"];
self.dataTask = [self.session dataTaskWithRequest:request];
[self resumeCurrentTask];
}
调用
_tmpSize = [FFileTool fileSize:self.downLoadingrPath];
[self downLoadWithURL:url offset:_tmpSize];
-(NSURLSession *)session {
if (!_session) {
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
_session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]];
}
return _session;
}
- (void)resumeCurrentTask {
if (self.dataTask && self.state == FDownLoadStatePause) {
[self.dataTask resume];
self.state = FDownLoadStateDownLoading;
}
}