iOS沙盒大文件存储案例

【重】沙盒大文件存储案例(文件夹路劲可以设置成全局的)

一、创建文件夹和文件

  //(1)创建文件夹,并创建文件
        //用来存放缓存文件,iTunes不会备份此目录,此目录下的文件不会在程序退出后删除,一般存放体积比较大但又不太重要的文件。
        NSString * documentsPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
        NSFileManager *fileManager  = [NSFileManager defaultManager];//初始化一个文件
        
        //创建文件夹
        NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"wenjianjiaName"];
        BOOL res1 =[fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];
        if (res1) {
            NSLog(@"文件夹创建成功");
        }else{
            NSLog(@"文件夹创建失败");
        }

        //在文件夹下创建文件
        NSString *testPath  = [testDirectory stringByAppendingPathComponent:@"wenjianjiaName.chaoxi"];
        BOOL res2 =[fileManager createFileAtPath:testPath contents:nil attributes:nil];
        if (res2) {
            NSLog(@"文件创建成功: %@" ,testPath);
        }else{
            NSLog(@"文件创建失败");
        }

二、写入文件

  //(2)写入文件(以保存照片为例子)
        NSData* imageData = UIImagePNGRepresentation([UIImage imageNamed:@"默认头像"]);
        BOOL res3 = [imageData writeToFile:testPath atomically:NO];
        if (res3) {
            NSLog(@"文件写入成功");
        }else{
            NSLog(@"文件写入失败");
        }

三、读取文件

   //(3)读取文件(读取图片时用这个路径)
        UIImage * image = [[UIImage alloc]initWithContentsOfFile:testPath];
        //获取文件夹下的所有文件名
        NSArray *arrayFiles = [[NSFileManager defaultManager] subpathsAtPath:testDirectory];

四、删除文件夹或者文件

  //(4)删除文件夹或者文件
        NSString * documentsPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
        //文件夹
        NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"wenjianjiaName"];
        //文件路径
        NSString *testPath  = [testDirectory stringByAppendingPathComponent:@"wenjianjiaName.chaoxi"];
        
        //删除文件夹,删除文件换成testPath路径就可以
        BOOL res =[[NSFileManager defaultManager] removeItemAtPath:testDirectory error:nil];
        if (res) {
            NSLog(@"文件夹删除成功");
        }else{
            NSLog(@"文件夹删除失败");
        }
        
        //附加
        NSLog(@"文件是否存在: %@",[[NSFileManager defaultManager] isExecutableFileAtPath:testPath]?@"YES":@"NO");

你可能感兴趣的:(iOS沙盒大文件存储案例)