博客
关于我
Objective-C实现拷贝二进制文件(附完整源码)
阅读量:795 次
发布时间:2023-02-21

本文共 1921 字,大约阅读时间需要 6 分钟。

在Objective-C中实现二进制文件的拷贝,可以通过NSFileManager类来实现。以下是一个完整的示例代码,展示了如何高效地拷贝一个二进制文件。

完整源码

#import 
void copyBinaryFile(NSString *sourcePath, NSString *destinationPath) { NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error = [fileManager errorForPath:sourcePath]; if (error) { NSLog(@"错误:文件路径错误,错误信息:%@", [error localizedDescription]); return; } NSError *destinationError = [fileManager createDirectoryAtPath:destinationPath withIntermediateDirectoriesCreateParentNode:YES error:&error]; if (destinationError) { NSLog(@"错误:无法创建目标目录,错误信息:%@", [error localizedDescription]); return; } NSFileHandle *srcFile = [fileManager fileHandleForReadingFileAtPath:sourcePath]; NSFileHandle *dstFile = [fileManager fileHandleForWritingFileAtPath:destinationPath]; if (!srcFile || !dstFile) { NSLog(@"错误:无法获取文件句柄,源文件或目标文件可能不存在"); return; } int byteCount = [srcFile seekToEndOfFile]; if (byteCount == 0) { NSLog(@"源文件为空,无法拷贝"); return; } // 开始拷贝文件内容 int bytesWritten = 0; while (bytesWritten < byteCount) { int bytesToWrite = min(byteCount - bytesWritten, 1024); const int32_t *buffer = [srcFile readBytesInRange:malloc(bytesToWrite)]; if (!buffer) { free(buffer); break; } if (dstFile.writeBufferFromBuffer(buffer, bytesToWrite) == nil) { free(buffer); break; } bytesWritten += bytesToWrite; free(buffer); } [srcFile close]; [dstFile close]; if (error) { NSLog(@"错误:拷贝过程中发生错误,错误信息:%@", [error localizedDescription]); } else { NSLog(@"成功:二进制文件已拷贝到目标路径"); }}

代码说明

  • 首先,导入必要的Foundation框架。
  • 创建NSFileManager实例,用于文件操作。
  • 检查源文件路径是否有效。
  • 创建目标目录,如果不存在,则创建。
  • 获取源文件和目标文件的文件句柄。
  • 计算源文件的大小,确保文件内容可以读取。
  • 开始读取源文件的内容并写入目标文件中。
  • 使用循环读取并写入数据,确保数据完整传输。
  • 最后关闭文件句柄并打印操作结果。
  • 这个实现不仅简单易懂,而且能够高效处理二进制文件的拷贝任务。

    转载地址:http://hmifk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现Romberg算法(附完整源码)
    查看>>
    Objective-C实现round robin循环赛算法(附完整源码)
    查看>>
    Objective-C实现RRT路径搜索(附完整源码)
    查看>>
    Objective-C实现rsa 密钥生成器算法(附完整源码)
    查看>>
    Objective-C实现RSA密码算法(附完整源码)
    查看>>
    Objective-C实现RSA素因子算法(附完整源码)
    查看>>
    Objective-C实现runge kutta龙格-库塔法算法(附完整源码)
    查看>>
    Objective-C实现segment tree段树算法(附完整源码)
    查看>>
    Objective-C实现selection sort选择排序算法(附完整源码)
    查看>>
    Objective-C实现sha256算法(附完整源码)
    查看>>
    Objective-C实现shell sort希尔排序算法(附完整源码)
    查看>>
    Objective-C实现sieveOfEratosthenes埃拉托色尼筛法求素数算法 (附完整源码)
    查看>>
    Objective-C实现SinglyLinkedList单链表算法(附完整源码)
    查看>>
    Objective-C实现skew heap倾斜堆算法(附完整源码)
    查看>>
    Objective-C实现Skip List跳表算法(附完整源码)
    查看>>
    Objective-C实现slack message松弛消息算法(附完整源码)
    查看>>
    Objective-C实现slow sort慢排序算法(附完整源码)
    查看>>
    Objective-C实现tanh函数功能(附完整源码)
    查看>>
    Objective-C实现z-algorithm算法(附完整源码)
    查看>>
    Objective-C实现zellers congruence泽勒一致算法(附完整源码)
    查看>>