+ (void)copyFileFromPath:(NSString *)fromPath toPath:(NSString *)toPath
{
//每次读取数据大小
#define READ_SIZE 1000
// 获取文件管理器
NSFileManager *fm = [NSFileManager defaultManager]; // 创建目标文件,用于存储从源文件读取的NSData数据 BOOL isSuccess = [fm createFileAtPath:toPath contents:nil attributes:nil]; if (!isSuccess) {
NSLog(@"创建目标文件失败!");
return;
}
// 获取源文件大小
NSDictionary *dic = [fm attributesOfItemAtPath:fromPath error:nil];
NSNumber *file_size = [dic objectForKey:@"NSFileSize"];
NSNumber *hadReadSize = @;
double leftSize = [file_size doubleValue] - [hadReadSize doubleValue];
// 创建源文件和目标文件的句柄
NSFileHandle *sh = [NSFileHandle fileHandleForReadingAtPath:fromPath];
NSFileHandle *dh = [NSFileHandle fileHandleForWritingAtPath:toPath];
NSData *tempData = nil;
while (leftSize > ) {

      @autoreleasepool {

           if (leftSize < READ_SIZE) {
   tempData = [sh readDataToEndOfFile];
   [dh writeData:tempData];
  break;
  }
  else
  {
   tempData = [sh readDataOfLength:READ_SIZE];
  [dh writeData:tempData];
  leftSize -= READ_SIZE;
  }
}
} }

IOS中大文件拷贝算法的更多相关文章

  1. iOS关于沙盒文件拷贝manager.copyItem的一个坑

    记录一下: 沙盒文件操作,当需要拷贝文件时,我们可以使用如下类似方式: // 文件拷贝 func copyFile(from:String,to:String)->Bool{ if !manag ...

  2. iOS下使用SHA1WithRSA算法加签源码

    首先了解一下几个相关概念,以方便后面遇到的问题的解决: RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数 ...

  3. 文件操作ofstream,open,close,ifstream,fin,依照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件

     1.ofstream,open,close 写入文件 #include<iostream> #include<fstream> using namespace std; ...

  4. iOS开发-文件操作

    目录操作和文件管理 学习目标 1.理解单例 2.掌握NSFileManager类常用的文件管理操 3.掌握NSFileHandle类常用的文件数据操作 4.了解NSData类的常用操作 5.掌握Pli ...

  5. 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密

    在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...

  6. 利用fstream进行文件拷贝测试

    今天翻到一个早期写测试代码的目录,找到几个以前的测试代码,于是拿出来贴到博客中.(只是简单的测试,并不严谨.注意这里windows和linux的硬件环境不一样) 这一个是使用fstream进行文件拷贝 ...

  7. [转][iOS Crash文件分析]-如何使用symbolicatecrash工具

    上传一软件,被拒了,自己测试了n遍都未出现这个情况,今天用symbolicatecrash工具分析了一下苹果提供的Crash文件,最终查到是 - (void)mapView:(MKMapView *) ...

  8. c++ 通过数据流方式实现文件拷贝

    #include "stdafx.h"#include <iostream>#include<fstream>using namespace std;voi ...

  9. node实现文件拷贝2

    https://www.cnblogs.com/coding4/p/7495968.html 文件拷贝NodeJS 提供了基本的文件操作 API,但是像文件拷贝这种高级功能就没有提供,因此我们先拿文件 ...

随机推荐

  1. web.xml文件:

    在web.xml配置文件是一个的J2EE配置文件,决定如何处理HTTP请求servlet容器的元素.它不是严格意义上的Struts2的配置文件,但它是一个文件,需要配置Struts2的工作. 正如前面 ...

  2. Hive查询错误:FAILED: RuntimeException Cannot make directory: hdfs://

    解决方法,关闭hadoop安全模式: hadoop dfsadmin -safemode leave

  3. 2017 css新特性

    2017年要学习的三个CSS新特性 这是翻译的一篇文章,原文是:3 New CSS Features to Learn in 2017,翻译的不是很好,如有疑问欢迎指出. 新的一年,我们有一系列新的东 ...

  4. hdu 4005(边双连通)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4005 思路:首先考虑边双连通分量,如果我们将双连通分量中的边删除,显然我们无法得到非连通图,因此要缩点 ...

  5. mac - MAC电脑安装Mysql服务器和Navicat for mysql客户端

        1.下载链接 Navicat for mysql客户端 链接: https://pan.baidu.com/s/1dGbzgbR 密码: i43g Mysql服务器 链接: https://p ...

  6. POJ 1848 Tree

    Tree Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3506   Accepted: 1204 Description ...

  7. hibernate 标签inverse cascade

    inverse设立不当会导致性能低下,其实是说inverse设立不当,会产生多余重复的SQL语句甚至致使JDBC exception的throw.这是我们在建立实体类关系时必须需要关注的地方.一般来说 ...

  8. 微信小程序结构分析

    1.Console页面:控制台信息页两个作用: (1)开发直接输入代码并且进行调试: (2)显示小程序的错误输出: 2.Sources页面:源文件调试信息页,用于显示当前项目的脚本文件. 3.Netw ...

  9. python redis操作

    import redis r = redis.Redis( host='1xx.x24.3xx.x0', #ip, password='xnxnxn&*',#密码 port=6379, #端口 ...

  10. tomcat访问日志分析

    常使用web服务器的朋友大都了解,一般的web server有两部分日志: 一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 二是访问日志信息,它记录的访问的时间,IP,访问的资 ...