iOS 本地存取图片

@interface ImageSaveHelper : NSObject


/**

 *  将图片数组以arrayName存储

 *

 *  @param array     图片数组,数组元素是UIImage

 *  @param nameArray 图片名称数组,数组元素是NSString

 *  @param arrayName 存储图片文件名称

 */

+(void)saveImageArray:(NSMutableArray *)array imageNameArray:(NSMutableArray *)nameArray andArrayName:(NSString *)fileName;




/**

 *  获取单张图片

 *

 *  @param imageName 图片名称

 *  @param fileName  文件夹名称

 *

 *  @return 图片

 */

+(UIImage *)getImageWithImageName:(NSString * )imageName andFileName:(NSString *)fileName;



/**

 *  获取文件名称的数组

 *

 *  @param fileName 文件夹名称

 *

 *  @return 文件名称组成的数组

 */

+(NSArray *)getImageNameArrayWithName:(NSString *)fileName;



/**

 *  获取arrayName文件夹下所有图片

 *

 *  @param arrayName 文件名称

 *

 *  @return 返回元素UIImage组成的数组

 */

+(NSMutableArray *)getImageArrayWithName:(NSString *)fileName;




/**

 *  删除fileName文件夹下名称为imageName的文件

 *

 *  @param imageName image名称

 *  @param fileName  文件夹名称

 *

 *  @return 是否删除成功

 */

+(BOOL)deleteImageName:(NSString * )imageName withFileName:(NSString *)fileName;






#import "ImageSaveHelper.h"


@implementation ImageSaveHelper



/**

 *  将图片数组以arrayName存储

 *

 *  @param array     图片数组,数组元素是UIImage

 *  @param nameArray 图片名称数组,数组元素是NSString

 *  @param arrayName 存储图片文件名称

 */

+(void)saveImageArray:(NSMutableArray *)array imageNameArray:(NSMutableArray *)nameArray andArrayName:(NSString *)fileName{

    

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

    

    NSString * path = [paths[0] stringByAppendingPathComponent:fileName];

    

    if (![[NSFileManager defaultManager] fileExistsAtPath:path]){//判断createPath路径文件夹是否已存在,此处createPath为需要新建的文件夹的绝对路径

        

        [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];//创建文件夹

      }


    for (int i = 0 ; i < array.count; i++) {

        

        NSString *filePath = [path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png",nameArray[i]]];   // 保存文件的名称

        

        [UIImagePNGRepresentation(array[i]) writeToFile: filePath    atomically:YES];

    }

    


}


/**

 *  获取文件名称的数组

 *

 *  @param fileName 文件夹名称

 *

 *  @return 文件名称组成的数组

 */

+(NSArray *)getImageNameArrayWithName:(NSString *)fileName{


    NSArray * imageNameArray = [NSArray array];

    

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

    

    NSString * path = [paths[0] stringByAppendingPathComponent:fileName];

    

    if (![[NSFileManager defaultManager] fileExistsAtPath:path]){//判断createPath路径文件夹是否已存在,不存在直接返回

        

        return imageNameArray;

    }

    

    //此文件夹下所有图片名称

    NSArray *filesNameArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:path error:nil];

    

    return filesNameArray;


}


/**

 *  获取arrayName文件夹下所有图片

 *

 *  @param arrayName 文件名称

 *

 *  @return 返回元素UIImage组成的数组

 */

+(NSMutableArray *)getImageArrayWithName:(NSString *)fileName{


    NSMutableArray * imageArray = [NSMutableArray array];

    

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

    

    NSString * path = [paths[0] stringByAppendingPathComponent:fileName];

    

    if (![[NSFileManager defaultManager] fileExistsAtPath:path]){//判断createPath路径文件夹是否已存在,不存在直接返回

        

        return imageArray;

    }

    

    //此文件夹下所有图片名称

    NSArray *filesNameArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:path error:nil];

    

    if (filesNameArray && filesNameArray.count != 0 ) {

        

        for (int i = 0 ; i < filesNameArray.count; i++) {

            

            UIImage * image = [UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:filesNameArray[i]]];

            

            [imageArray addObject:image];

            

        }

        

    }


    return imageArray;


}

/**

 *  获取单张图片

 *

 *  @param imageName 图片名称

 *  @param fileName  文件夹名称

 *

 *  @return 图片

 */

+(UIImage *)getImageWithImageName:(NSString * )imageName andFileName:(NSString *)fileName{

    

    UIImage * image = [[UIImage alloc]init];


    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

    

    NSString * path = [paths[0] stringByAppendingPathComponent:fileName];

    

    if (![[NSFileManager defaultManager] fileExistsAtPath:path]){//判断createPath路径文件夹是否已存在,不存在直接返回

        

        return image;

    }

    

   image = [UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:imageName]];

    

    return image;


}

/**

 *  删除fileName文件夹下名称为imageName的文件

 *

 *  @param imageName image名称

 *  @param fileName  文件夹名称

 *

 *  @return 是否删除成功

 */

+(BOOL)deleteImageName:(NSString * )imageName withFileName:(NSString *)fileName{

    

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

    

    NSString * path = [paths[0] stringByAppendingPathComponent:fileName];

    

    NSString * pathFull = [path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png",imageName]];

    

    if([[NSFileManager defaultManager] fileExistsAtPath:pathFull])//如果存在临时文件的配置文件

    {

        

       return  [[NSFileManager defaultManagerremoveItemAtPath:pathFull error:nil];

        

    }

    

    return NO;


}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值