1. 計算檔案尺寸
// 獲取
cache
資料夾的路徑
nsstring *cachepath = directorypath;
// 建立檔案管理者
nsfilemanager*manager = [nsfilemanager
defaultmanager];
// 判斷是否是資料夾
bool isdirectory = no;
// 判斷當前路徑的檔案是否存在
bool i***ists = [manager fileexistsatpath:directorypath isdirectory:&isdirectory];
// 如果檔案不存在或者不是資料夾
if (!i***ists || !isdirectory)
// 獲取資料夾所有子路徑陣列(快取檔案),可以獲取多級目錄下檔案路徑
nsarray *subpaths = [manager subpathsatpath:cachepath];
// 定義變數儲存檔案的尺寸
int totalsize = 0;
// 遍歷檔案路徑
for (nsstring *subpath in subpaths) }
2. 刪除快取檔案
// 如果指定了乙個不存在的資料夾如何處理
// 建立檔案管理者
nsfilemanager*mgr = [nsfilemanager
defaultmanager];
// 判斷是否是資料夾
bool isdirector = no;
// 判斷當前路徑的檔案是否存在
bool i***ists = [mgr fileexistsatpath:directorypath isdirectory:&isdirector];
if (!i***ists || !isdirector)
// 清除資料夾 [[
nsfilemanager
defaultmanager] removeitematpath:directorypath error:
nil];
// 根據路徑建立新的資料夾
[[nsfilemanager
defaultmanager] createdirectoryatpath:directorypath withintermediatedirectories:
yesattributes:
nilerror:
nil];
3. 實現傳入乙個檔案路徑就能夠獲取檔案尺寸的字串
#import @inte***ce cqfilemanager : nsfilemanager
/** 指定乙個資料夾路徑,獲取當前資料夾路徑尺寸
*/+ (void)getdirectorysize:(nsstring *)directorypath completion:(void(^)(int totalsize))completion;
/** * 指定乙個資料夾路徑,刪除這個資料夾
*/+ (void)removedirectorypath:(nsstring *)directorypath;
/** * 指定乙個資料夾路徑,獲取當前資料夾尺寸字串
*/+ (void)directorysizestring:(nsstring *)directorypath compltion:(void(^)(nsstring *directorysize))strcompletion;
@end
#import "cqfilemanager.h"
@implementation cqfilemanager
// 獲取指定路徑資料夾尺寸字串
+ (void)directorysizestring:(nsstring *)directorypath compltion:(void (^)(nsstring *directorysize))strcompletion
else if (size > 1000) else if (size > 0)
str = [str stringbyreplacingoccurrencesofstring:@".0" withstring:@""];
if (strcompletion)
}];}// 獲取指定路徑資料夾尺寸
+ (void)getdirectorysize:(nsstring *)directorypath completion:(void (^)(int totalsize))completion
// 獲取資料夾所有子路徑陣列(快取檔案),可以獲取多級目錄下檔案路徑
nsarray *subpaths = [manager subpathsatpath:cachepath];
// 定義變數儲存檔案的尺寸
int totalsize = 0;
// 遍歷檔案路徑
for (nsstring *subpath in subpaths)
// 回到主線程將檔案尺寸轉換成字串並顯示
dispatch_sync(dispatch_get_main_queue(), ^
});});
}// 刪除指定路徑資料夾
+ (void)removedirectorypath:(nsstring *)directorypath
// 清除資料夾
[[nsfilemanager defaultmanager] removeitematpath:directorypath error:nil];
// 根據路徑建立新的資料夾
[[nsfilemanager defaultmanager] createdirectoryatpath:directorypath withintermediatedirectories:yes attributes:nil error:nil];
}@end
#import "cqsettingviewcontroller.h"
#import "cqfilemanager.h"
//目標檔案路徑的巨集
#define cachepath [nssearchpathfordirectoriesindomains(nscachesdirectory, nsuserdomainmask, yes) firstobject]
@inte***ce cqsettingviewcontroller ()
@property (nonatomic, strong) nsstring *str;
@end
@implementation cqsettingviewcontroller
- (void)viewdidload
- (void)calculatecachesize];}
- (void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath
iOS獲取快取檔案的大小並清除快取
移動應用在處理網路資源時,一般都會做離線快取處理,其中以快取最為典型,其中很流行的離線快取框架為sdwebimage。今天介紹的離線快取功能的實現,主要分為快取檔案大小的獲取 清除快取檔案的實現。nsstring的類別檔案 instancetype cachedir 1.獲取快取檔案的大小 cgfl...
IOS獲取快取檔案的大小並清除快取檔案的方法
移動應用在處理網路資源時,一般都會做離線快取處理,其中以快取最為典型,其中很流行的離線快取框架為sdwebimage。但是,離線快取會占用手機儲存空間,所以快取清理功能基本成為資訊 購物 閱讀類app的標配功能。今天介紹的離線快取功能的實現,主要分為快取檔案大小的獲取 清除快取檔案的實現。1.獲取快...
Glide獲取快取大小以及清除快取
compile com.github.bumptech.glide glide 3.7.0 呼叫工具類獲取快取大小 string cachesize glidecacheutil.getinstance getcachesize this clean.settext cachesize dingwe...