当前位置:首页 > 操作系统 > 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数据 910     BOOL isSuccess = [fm createFileAtPath:toPath contents:nil attributes:nil];
1112if (!isSuccess) {
13         NSLog(@"创建目标文件失败!");
14return;
15    }
16// 获取源文件大小17     NSDictionary *dic = [fm attributesOfItemAtPath:fromPath error:nil];
18     NSNumber *file_size = [dic objectForKey:@"NSFileSize"];
19     NSNumber *hadReadSize = @0;
20double leftSize = [file_size doubleValue] - [hadReadSize doubleValue];
21// 创建源文件和目标文件的句柄22     NSFileHandle *sh = [NSFileHandle fileHandleForReadingAtPath:fromPath];
23     NSFileHandle *dh = [NSFileHandle fileHandleForWritingAtPath:toPath];
24     NSData *tempData = nil;
25while (leftSize > 0) {
26if (leftSize < READ_SIZE) {
27             tempData = [sh readDataToEndOfFile];
28            [dh writeData:tempData];
29break;
30        }
31else32        {
33             tempData = [sh readDataOfLength:READ_SIZE];
34            [dh writeData:tempData];
35             leftSize -= READ_SIZE;
36        }
3738    }
3940 }

 

原文:http://www.cnblogs.com/dashunzi/p/3737640.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!