首页 > 代码库 > IOS中大文件拷贝算法
IOS中大文件拷贝算法
1 + (void)copyFileFromPath:(NSString *)fromPath toPath:(NSString *)toPath 2 { 3 //每次读取数据大小 4 #define READ_SIZE 10 5 // 获取文件管理器 6 NSFileManager *fm = [NSFileManager defaultManager]; 7 8 // 创建目标文件,用于存储从源文件读取的NSData数据 9 10 BOOL isSuccess = [fm createFileAtPath:toPath contents:nil attributes:nil]; 11 12 if (!isSuccess) { 13 NSLog(@"创建目标文件失败!"); 14 return; 15 } 16 // 获取源文件大小 17 NSDictionary *dic = [fm attributesOfItemAtPath:fromPath error:nil]; 18 NSNumber *file_size = [dic objectForKey:@"NSFileSize"]; 19 NSNumber *hadReadSize = @0; 20 double leftSize = [file_size doubleValue] - [hadReadSize doubleValue]; 21 // 创建源文件和目标文件的句柄 22 NSFileHandle *sh = [NSFileHandle fileHandleForReadingAtPath:fromPath]; 23 NSFileHandle *dh = [NSFileHandle fileHandleForWritingAtPath:toPath]; 24 NSData *tempData =http://www.mamicode.com/ nil; 25 while (leftSize > 0) { 26 if (leftSize < READ_SIZE) { 27 tempData =http://www.mamicode.com/ [sh readDataToEndOfFile]; 28 [dh writeData:tempData]; 29 break; 30 } 31 else 32 { 33 tempData =http://www.mamicode.com/ [sh readDataOfLength:READ_SIZE]; 34 [dh writeData:tempData]; 35 leftSize -= READ_SIZE; 36 } 37 38 } 39 40 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。