oc学习之旅:NSFileHandle与NSFileManager实现FileCopy
来源:互联网 发布:java 循环打印map 编辑:程序博客网 时间:2024/05/18 02:45
#import <Foundation/Foundation.h>
#define SRCPATH @"/Users/chanbin/Desktop/release.mp4"
#define DESPATH @"/Users/chanbin/Desktop/RE.mp4"
NSFileManager
判断文件下是否存在
[manager fileExistsAtPath:PATH isDirectory:<#(BOOL *)#>]
if(文件夹不存在)
1.创建文件夹
{
[manager createDirectoryAtPath:<#(NSString *)#> withIntermediateDirectories:<#(BOOL)#> attributes:<#(NSDictionary *)#> error:<#(NSError *__autoreleasing *)#>];
}
创建文件部分:
[manager fileExistsAtPath:PATH]
if(文件不存在)
2.创建文件
{
[manager createFileAtPath:<#(NSString *)#> contents:<#(NSData *)#> attributes:<#(NSDictionary *)#>];
}
创建成功
--------------
NSFileHandle 获得一个可读可写的文件句柄对象 NSFileHandle *handle = [NSFileHandle fileHandleForUpdatingAtPath:PATH];
读写文件 操作nsdata对象
写:wirteData
读:readDataOfLength
读写过程中需要关注文件流指针:决定读取写到哪个位置
操作流指针:seekToFileOffset:
int main(int argc,constchar * argv[])
{
@autoreleasepool {
NSFileManager *manager = [NSFileManagerdefaultManager];
if (![managerfileExistsAtPath:DESPATH ]) {
[manager createFileAtPath:DESPATHcontents:nilattributes:nil];
}
NSFileHandle *readHande = [NSFileHandlefileHandleForReadingAtPath:SRCPATH];
NSFileHandle *writeHande = [NSFileHandlefileHandleForWritingAtPath:DESPATH];
//获取文件总大小先把文件读到字典中去(官方取文件大小方法步骤1)
NSDictionary *dic = [managerattributesOfItemAtPath:SRCPATHerror:nil];
//从字典中读取大小(官方获取文件方法步骤2)
unsignedlonglong totalSize =[[dicobjectForKey:NSFileSize]integerValue];
unsignedlonglong readSize =0;
while (totalSize) {
NSData * data =nil;
//最后不足1024字节处理
if(totalSize /1024){
totalSize-=1024;
readSize +=1024;
//数据读取
data = [readHandereadDataOfLength:1024];
}else{
//不足1024字节
unsignedlonglong size = totalSize %1024;
totalSize -= size;
data = [readHandereadDataOfLength:size];
}
//写文件
[writeHandewriteData:data];
}
[readHandecloseFile];
[writeHandecloseFile];
}
return0;
}
或者
#import <Foundation/Foundation.h>
#define REPATH @"/Users/chanbin/Desktop/release.mp4"
#define TOPATH @"/Users/chanbin/Desktop/RE.mp4"
int main(int argc,constchar * argv[])
{
@autoreleasepool {
NSFileManager *manager = [NSFileManagerdefaultManager];
//新建拷贝文件
if ([managerfileExistsAtPath:TOPATH]) {
NSLog(@"File exit");
}else{
[manager createFileAtPath:TOPATHcontents:nilattributes:nil];
//读写文件句柄对象
NSFileHandle *handle1 = [NSFileHandlefileHandleForReadingAtPath:REPATH];
NSFileHandle *handle2 = [NSFileHandlefileHandleForWritingAtPath:TOPATH];
//获取文件大小
unsignedlonglong length = [handle1seekToEndOfFile];
[handle1seekToFileOffset:0];
int i ;
for (i =0;1024* i <length; i++) {
NSData *data = [handle1readDataOfLength:1024];
[handle2writeData:data];
[handle1seekToFileOffset:i*1024];
}
[handle2writeData:[handle1readDataOfLength:(length - 1024 *(i - 1))]];
[handle2closeFile];
[handle1closeFile];
}
}
return0;
}
- oc学习之旅:NSFileHandle与NSFileManager实现FileCopy
- OC语言--NSFileManager& NSFileHandle
- oc NSFileManager NSFileHandle 详细
- OC基础:7.1 7.2 7.3 NSFileHandle 和 NSFileManager学习
- IOS之NSFileManager 和NSFileHandle
- 【OC学习-23】NSFileManager、NSFileHandle、NSData的注意事项和常用操作归纳
- 黑马程序员-[OC]学习之旅-NSFileManager、NSNumber、NSDate
- NSFileManager、NSFileHandle
- 简析——NSFileManager与NSFileHandle
- OC 文件部分 (NSFileManager NSData NSFileHandle 的应用)
- oc 文件管理NSFileManager,文件读写NSFileHandle 文件复制
- 学习iOS开发之NSFileManager类和NSFileHandle类的使用
- OC之文件管理NSFileHandle
- 黑马程序员---OC学习笔记之NSFileManager介绍和用法
- ios开发——NSFileManager与NSFileHandle相关
- NSFileManager和NSFileHandle
- NSFileManager和NSFileHandle
- NSFileManager和NSFileHandle
- 浅谈c#中的泛型(一)
- IOS:标签栏与导航栏
- CentOS 环境配置积累
- Java(Android)写文件时指定编码格式的问题
- 发布网站,报Access to the path is denied的解决办法
- oc学习之旅:NSFileHandle与NSFileManager实现FileCopy
- 欢迎您在新浪博客安家
- “二调”全解读
- php 搜索工作经验小结
- 【转】MapGIS基础系列(三)…
- MapGIS K9如何裁剪瓦片数据
- 所有服务正常,但是瓦片数据…
- 【转】MapGIS基础系列(三)…
- 【转】MapGIS K9基础系…