獲取檔案尺寸清除快取

2021-07-24 00:24:52 字數 3545 閱讀 3802

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...