cdts/xdts-ios 3/Pods/DDWriteFileManager/WriteFileSupportSpec/Classes/DDWriteDefaultConfigMethods.m
2023-07-27 09:20:00 +08:00

190 lines
5.8 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// DDWriteDefaultConfigMethods.m
// AFNetworking
//
// Created by DDLi on 2020/3/27.
//
#import "DDWriteDefaultConfigMethods.h"
#import "NSString+DDWriteExt.h"
#define defaultCirName @"DDWriteDefaultCirName"
@interface DDWriteDefaultConfigMethods ()
@property (nonatomic, copy, readwrite) NSString *path;
@end
@implementation DDWriteDefaultConfigMethods
+ (DDWriteDefaultConfigMethods *) ShareInstance {
static DDWriteDefaultConfigMethods *sharedDefaultWriteFileInstance = nil;
static dispatch_once_t predicate;
dispatch_once(&predicate, ^{
sharedDefaultWriteFileInstance = [[self alloc] init];
});
return sharedDefaultWriteFileInstance;
}
- (instancetype) init {
return [self initWithPath:defaultCirName];
}
- (instancetype)initWithPath:(NSString *)path {
if (path.length == 0) return nil;
[[DDWriteFileSupport ShareInstance]createDir:path filed:DDFieldDocuments];
self = [super init];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
_path = [documentsDirectory stringByAppendingPathComponent:defaultCirName];
return self;
}
#pragma mark - main methods
- (nullable NSString *)defaultSearchByUrl:(nonnull NSString *)url
imgType:(DDImgType)type {
if (!url)
return nil;
return [self defaultSearchByFileName:[self changeUrlToFileName:url imgType:type]];
}
- (nullable NSString *)defaultSearchByFileName:(nonnull NSString *)name {
if (!name)
return nil;
return [_path stringByAppendingPathComponent:name];
}
#pragma mark - ***** 获取默认文件夹下所有子文件路径或文件名 *****
- (nullable NSMutableArray <NSString *> *)searchDefaultDirFilePaths {
return [[DDWriteFileSupport ShareInstance]readDirPath:_path];
}
- (nullable NSArray <NSString *> *)searchDefaultDirFileNames {
return [[DDWriteFileSupport ShareInstance]readDirNames:_path];
}
#pragma mark - ***** 写入 *****
- (BOOL)directWriteFileName:(nonnull NSString *)name
data:(nonnull id)data {
if (!name)
return NO;
return [[DDWriteFileSupport ShareInstance]directWriteFile:[_path stringByAppendingPathComponent:name] data:data];
}
- (BOOL)writeFile:(nonnull NSString *)name
data:(nonnull id)data {
if (!name)
return NO;
return [[DDWriteFileSupport ShareInstance]writeFile:[_path stringByAppendingPathComponent:name] data:data];
}
- (BOOL)directWriteImg:(nonnull NSString *)url
img:(nonnull UIImage *)img
imageType:(DDImgType)imgType {
if (!url || !img)
return NO;
return [[DDWriteFileSupport ShareInstance]directWriteFile:[_path stringByAppendingPathComponent:[self changeUrlToFileName:url imgType:imgType]] img:img imageType:imgType];
}
- (BOOL)writeImg:(nonnull NSString *)url
img:(nonnull UIImage *)img
imageType:(DDImgType)imgType {
if (!url || !img)
return NO;
return [[DDWriteFileSupport ShareInstance]writeFile:[_path stringByAppendingPathComponent:[self changeUrlToFileName:url imgType:imgType]] img:img imageType:imgType];
}
#pragma mark - ***** 删除 *****
- (BOOL)removeFile:(nonnull NSString *)name {
if (!name)
return NO;
return [[DDWriteFileSupport ShareInstance]removeFile:[_path stringByAppendingPathComponent:name]];
}
- (BOOL)removeImg:(nonnull NSString *)url
imgType:(DDImgType)imgType{
if (!url)
return NO;
return [[DDWriteFileSupport ShareInstance]removeFile:[_path stringByAppendingPathComponent:[self changeUrlToFileName:url imgType:imgType]]];
}
/**
以文件夹名删除文件夹
@param dirName 文件夹名
@return 删除结果
*/
- (BOOL)removeDirFiles:(nonnull NSString *)dirName {
if (!dirName)
return NO;
return [[DDWriteFileSupport ShareInstance]removeDirFiles:[_path stringByAppendingPathComponent:dirName]];
}
#pragma mark - 读取文件操作
/**
根据name读取默认文件夹下的文件不存在则返回nil可选择直接返回的type,如果缓存中存在则直接返回不需要设置返回type
@param name 文件名
@param type 返回文件类型
@return 返回文件
*/
- (nullable id)readFile:(nonnull NSString *)name
fileType:(DDFileType)type {
if (!name)
return nil;
return [[DDWriteFileSupport ShareInstance]readFile:[_path stringByAppendingPathComponent:name] fileType:type];
}
/**
读取存储的image
@param url 保存图片的url
@return 返回文件
*/
- (nullable UIImage *)readImg:(nonnull NSString *)url
imgType:(DDImgType)imgType {
if (!url)
return nil;
return [[DDWriteFileSupport ShareInstance]readFile:[_path stringByAppendingPathComponent:[self changeUrlToFileName:url imgType:imgType]] fileType:DDFileTypeImage];
}
/**
删除nscache内的缓存
*/
- (void)flushCache {
[[DDWriteFileSupport ShareInstance]flushCache];
}
#pragma mark - 计算文件或文件夹大小操作
/**
通过获取默认存储位置的文件大小
@param type 返回文件大小的计算格式kb,mb,gb,tb
@return 返回文件大小
*/
- (float)countSize:(DDSizeType)type {
return [[DDWriteFileSupport ShareInstance]countDirSize:_path fileSizeType:type];
}
#pragma mark - support methods
- (NSString *)changeUrlToFileName:(NSString *)url
imgType:(DDImgType)type {
NSString *imageName = @"";
switch (type) {
case DDImgTypePNG:
imageName = [[url DDWrite_md5Mod16] stringByAppendingString:@".png"];
break;
case DDImgTypeJPEG:
imageName = [[url DDWrite_md5Mod16] stringByAppendingString:@".jpg"];
break;
default:
imageName = [[url DDWrite_md5Mod16] stringByAppendingString:@".png"];
break;
}
return imageName;
}
@end