1 int main(int argc, const char * argv[]) {
2 @autoreleasepool {
3
4
5 //复制文件
6
7
8 //找到原来的文件路径
9 NSString *soureFilePath = @"/Users/scjy/Downloads/51CTO下载-10大iOS开发者最喜爱的类库.doc";
10
11 //指定新的文件路径(文件不存在)
12 NSString *objectFilePath = @"/Users/scjy/Desktop/刘二龙练习/OC/练习1/大文件复制/大文件复制/51CTO下载-10大iOS开发者最喜爱的类库.doc";
13
14 //创建文件管理器,为创建新的文件做准备
15 NSFileManager *fileManager=[NSFileManager defaultManager];
16
17 // 如果源文件不存在,结束程序
18 if ([fileManager fileExistsAtPath:soureFilePath]) {
19 return 0;
20 }
21 /* // 如果目标文件存在,无需创建
22 if ([fileManager fileExistsAtPath:objectFilePath]) {
23 NSLog(@"文件已存在,无需创建新文件");
24 }
25 */
26 //创建新的文件(此时文件中无数据)
27 BOOL isSuccess=[fileManager createFileAtPath:objectFilePath contents:nil attributes:nil];
28 if (isSuccess)
29 {
30 NSLog(@"创建成功");
31
32
33 //1.读取源文件中的数据:fileHandleForReadingAtPath
34 NSFileHandle *soureHandle=[NSFileHandle fileHandleForReadingAtPath:soureFilePath];
35 // 用soureHandle.seekToEndOfFile获取文件字节数
36 for (NSUInteger i = 0; i<soureHandle.seekToEndOfFile; i++)
37 {
38 //准备读取源文件
39 NSFileHandle *soureHandle=[NSFileHandle fileHandleForReadingAtPath:soureFilePath];
40
41 // 定位从什么位置开始读取源文件
42 [soureHandle seekToFileOffset:10*i];
43
44 // 读取10字节
45 NSData *old_data=[soureHandle readDataOfLength:10];
46
47 //2.将源文件中获取的数据写入新的文件:fileHandleForWritingAtPath
48 //准备写入目标文件
49 NSFileHandle *objectHandle=[NSFileHandle fileHandleForWritingAtPath:objectFilePath];
50
51 // 开始写入时的位置
52 [objectHandle seekToFileOffset:10*i];
53
54 // 写入
55 [objectHandle writeData:old_data];
56
57 // 关闭源文件
58 [soureHandle closeFile];
59
60 // 关闭目标文件
61 [objectHandle closeFile];
62 }
63 }
64 else
65 {
66 NSLog(@"创建失败");
67 }
68
69
70 }
71 return 0;
72 }