@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 defaultManager] removeItemAtPath:pathFull error:nil];
}
return NO;
}