IOS中大文件拷贝算法
+ (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中大文件拷贝算法的更多相关文章
- iOS关于沙盒文件拷贝manager.copyItem的一个坑
记录一下: 沙盒文件操作,当需要拷贝文件时,我们可以使用如下类似方式: // 文件拷贝 func copyFile(from:String,to:String)->Bool{ if !manag ...
- iOS下使用SHA1WithRSA算法加签源码
首先了解一下几个相关概念,以方便后面遇到的问题的解决: RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数 ...
- 文件操作ofstream,open,close,ifstream,fin,依照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件
1.ofstream,open,close 写入文件 #include<iostream> #include<fstream> using namespace std; ...
- iOS开发-文件操作
目录操作和文件管理 学习目标 1.理解单例 2.掌握NSFileManager类常用的文件管理操 3.掌握NSFileHandle类常用的文件数据操作 4.了解NSData类的常用操作 5.掌握Pli ...
- 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密
在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...
- 利用fstream进行文件拷贝测试
今天翻到一个早期写测试代码的目录,找到几个以前的测试代码,于是拿出来贴到博客中.(只是简单的测试,并不严谨.注意这里windows和linux的硬件环境不一样) 这一个是使用fstream进行文件拷贝 ...
- [转][iOS Crash文件分析]-如何使用symbolicatecrash工具
上传一软件,被拒了,自己测试了n遍都未出现这个情况,今天用symbolicatecrash工具分析了一下苹果提供的Crash文件,最终查到是 - (void)mapView:(MKMapView *) ...
- c++ 通过数据流方式实现文件拷贝
#include "stdafx.h"#include <iostream>#include<fstream>using namespace std;voi ...
- node实现文件拷贝2
https://www.cnblogs.com/coding4/p/7495968.html 文件拷贝NodeJS 提供了基本的文件操作 API,但是像文件拷贝这种高级功能就没有提供,因此我们先拿文件 ...
随机推荐
- web.xml文件:
在web.xml配置文件是一个的J2EE配置文件,决定如何处理HTTP请求servlet容器的元素.它不是严格意义上的Struts2的配置文件,但它是一个文件,需要配置Struts2的工作. 正如前面 ...
- Hive查询错误:FAILED: RuntimeException Cannot make directory: hdfs://
解决方法,关闭hadoop安全模式: hadoop dfsadmin -safemode leave
- 2017 css新特性
2017年要学习的三个CSS新特性 这是翻译的一篇文章,原文是:3 New CSS Features to Learn in 2017,翻译的不是很好,如有疑问欢迎指出. 新的一年,我们有一系列新的东 ...
- hdu 4005(边双连通)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4005 思路:首先考虑边双连通分量,如果我们将双连通分量中的边删除,显然我们无法得到非连通图,因此要缩点 ...
- mac - MAC电脑安装Mysql服务器和Navicat for mysql客户端
1.下载链接 Navicat for mysql客户端 链接: https://pan.baidu.com/s/1dGbzgbR 密码: i43g Mysql服务器 链接: https://p ...
- POJ 1848 Tree
Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3506 Accepted: 1204 Description ...
- hibernate 标签inverse cascade
inverse设立不当会导致性能低下,其实是说inverse设立不当,会产生多余重复的SQL语句甚至致使JDBC exception的throw.这是我们在建立实体类关系时必须需要关注的地方.一般来说 ...
- 微信小程序结构分析
1.Console页面:控制台信息页两个作用: (1)开发直接输入代码并且进行调试: (2)显示小程序的错误输出: 2.Sources页面:源文件调试信息页,用于显示当前项目的脚本文件. 3.Netw ...
- python redis操作
import redis r = redis.Redis( host='1xx.x24.3xx.x0', #ip, password='xnxnxn&*',#密码 port=6379, #端口 ...
- tomcat访问日志分析
常使用web服务器的朋友大都了解,一般的web server有两部分日志: 一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 二是访问日志信息,它记录的访问的时间,IP,访问的资 ...