標籤:style blog class c code java
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 = nil;25 while (leftSize > 0) {26 if (leftSize < READ_SIZE) {27 tempData = [sh readDataToEndOfFile];28 [dh writeData:tempData];29 break;30 }31 else32 {33 tempData = [sh readDataOfLength:READ_SIZE];34 [dh writeData:tempData];35 leftSize -= READ_SIZE;36 }37 38 }39 40 }