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