OC_FileManager_文件内外操作
来源:互联网 发布:淘宝搜索引擎工作流程 编辑:程序博客网 时间:2024/05/17 23:44
//系统路径://1.应用程序包 路径 NSString *bundlePathStr =[[NSBundle mainBundle] bundlePath]; //2.直接到Documents文件夹下/这个文件下适合存储重要文件,每次ITunes同步都会光顾这个文件夹 NSString *docuPathStr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSSystemDomainMask, YES).firstObject; //3.labary/中有 存放缓冲caches 和 Preferences NSString *labaryPathStr = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSSystemDomainMask, YES).firstObject; //4.存放一些 体积较大,且不需要备份的分拣 NSString *cachesPathStr = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSSystemDomainMask, YES).firstObject; //5.通常存放一些应用的设置信息 NSString* preferencesPathStr = NSSearchPathForDirectoriesInDomains(NSPreferencePanesDirectory, NSSystemDomainMask, YES).firstObject; //6.通过NSHomeDirectory() 取到沙盒的位置的目录,然后通过 stringByappending 拼接想要到达的目录 NSString *directory = NSHomeDirectory(); NSString *document = [directory stringByAppendingString:@"/Documents"];//文件外操作://1、实例化一个文件操作的工具对象,接下来的对文件的操作都是用这个manager进行(本质上也是单例) NSFileManager *manager = [NSFileManager defaultManager];//2、判断一个文件是否存在,参数是路径+文件名+扩展名 BOOL isFileExist = [manager fileExistsAtPath:[NSString stringWithFormat:@"%@%@",docuPathStr,@"/file.txt"]];//3、创建一个文件,返回值是 创建是否成功 contents 是写入文件的Data attributes设置文件操作的一些属性,nil为默认属性 BOOL isCreate = [manager createFileAtPath:[NSString stringWithFormat:@"%@%@",docuPathStr,@"/file.txt"] contents:nil attributes:nil];//4.创建一个目录//第一个参数是要创建的文件夹完整路径 BOOL isDirectory = [manager createDirectoryAtPath:[docuPathStr stringByAppendingString:@"/ll/pp"] withIntermediateDirectories:YES attributes:nil error:nil];//5.获得文件大小等 各种文件等属性 NSDictionary *fileDic = [manager attributesOfItemAtPath:[document stringByAppendingString:@"/file.txt"] error:nil]; [fileDic objectForKey:@"NSFileSize"]; //6.遍历文件夹 //6.1浅层遍历(只遍历当前路径) NSArray *shallowArr = [manager contentsOfDirectoryAtPath:document error:nil]; //6.2深层遍历(遍历当前路径及其所有子路径) NSArray *deepArr = [manager subpathsOfDirectoryAtPath:document error:nil]; for(NSString *temp in deepArr) { if([temp hasSuffix:@".txt"]) {//dosomeing NSLog(@"%找到你想要的东西了",temp); } }//文件位置操作: //7.复制和剪切 //7.1复制 NSString *originalFile = [docuPathStr stringByAppendingString:@"/file.txt"];//源文件,将要copy的 文件 NSString *targetFile = [document stringByAppendingString:@"/ll/mm.mp4"];//目标文件 BOOL isCopy = [manager copyItemAtPath:originalFile toPath:targetFile error:nil];//将源文件 复制到 目标地址 if(isCopy) { NSLog(@"复制成功"); } else { NSLog(@"复制失败"); } //7.2、剪切 NSString *cutOriginalFile = [document stringByAppendingString:@"/ll/mm.mp4"]; NSString *cutTargetFile = [document stringByAppendingString:@"/ll/pp/mm.mp4"]; BOOL isMove = [manager moveItemAtPath:cutOriginalFile toPath:cutTargetFile error:nil]; if(isMove) { NSLog(@"移动完成"); } else { NSLog(@"移动失败"); }
//文件内操作:(无论是读还是写,最后光标都会移动到读和写的最后位置)//1、打开文件(只读reading、只写writing、读写updating三种方式) NSFileHandle *handle = [NSFileHandle fileHandleForUpdatingAtPath:[docuPathStr stringByAppendingString:@"/file.txt"]];//2、读文件,文件刚打开,光标在最开始 NSData *firstRead = [handle readDataToEndOfFile];//把这个文件从头读到尾 NSString *firstReadStr = [[NSString alloc] initWithData:firstRead encoding:NSUTF8StringEncoding];//3、写文件 NSString *secondWriteStr = @"我是一句话"; NSData *secondWriteData = [secondWriteStr dataUsingEncoding:NSUTF8StringEncoding]; [handle writeData:secondWriteData]; //4、移动光标 //4.1、移动到最开始(一个汉字光标移动1.5) [handle seekToFileOffset:0]; //4.2、移动到最后 [handle seekToEndOfFile];
0 0
- OC_FileManager_文件内外操作
- Join内外连接基本操作
- EFM32片内外设--LCD Bitband操作
- EFM32片内外设--RMU基本操作
- EFM32片内外设--WDT基本操作
- EFM32片内外设--VCMP 基本操作
- EFM32片内外设--RMU基本操作
- 设置同时上内外网+文件共享
- Docker容器内外互相拷贝文件
- Docker容器内外互相拷贝文件
- EFM32片内外设--MSC之一般操作
- EFM32片内外设Timer之基本操作
- EFM32片内外设--LEUart之基本操作
- win7CMD route配置内外网双网卡操作
- JS/jQuery--iframe框架内外元素的操作
- 内外网共享FCK editor的上传文件
- Loader文件内外加载 信号槽方法属性
- 内外连接
- Java 将excel中的内容导入数据库中
- 腾讯面试专场
- 面试题五: 从尾到头打印链表
- POJ 2115 for求循环次数-数论-(同余方程+扩展欧几里得算法)
- 黑马程序员Java笔记——集合篇(一)
- OC_FileManager_文件内外操作
- Codeforces Round #316 (Div. 2)570A Elections(模拟)
- Codeforces Round #316 (Div. 2)
- Codeforces Round #316 (Div. 2) C. Replacement 找规律 或 线段树
- Codeforces Round #316 (Div. 2)570B Simple Game(脑洞)
- Codeforces Round #316 (Div. 2)-C. Replacement
- cocos2dx 3.3 scrollView lua 版本幻灯片效果
- Codeforces Round #316 (Div. 2) -B-Simple Game-水题
- Codeforces Round #316 (Div. 2)-A. Elections-模拟水题22