SDWebImage/SDImageCache 獲得快取大小,清理快取。
最新版的SDWebImage已帶有獲取快取空間總大小的方法 -(vode) getSize ;
若要想獲取SDImageCache指定快取大小 可以新增一下方法;
- (float)getCachesSize{
float getSize = 0;
NSDirectoryEnumerator *fileEnumerator = [[NSFileManagerdefaultManager] enumeratorAtPath:self.diskCachePath];
for ( NSString* fileName in fileEnumerator){
NSString* cachePath = [
nser
NSError *error = nil;
NSDictionary* attrs = [[NSFileManagerdefaultManager] attributesOfItemAtPath:cachePath error:&error];
unsignedlonglong length = [attrs fileSize];
cacheSize += length / 1024.0 / 1024.0;
}
return cacheSize;
}
呼叫以上的方法便可以獲得快取大小,
-------------------------------又是一個寧靜的夜晚------------------------------------
下面方法是清除快取的方法,在指定目錄的情況下,清除指定目錄的檔案,方法是通用的。
SDImageCache 類中也是帶有清除快取的方法 ;- (void)clearMemory; - (void)clearDisk; 主要使用第二個。
+ (void)cleanFileDirectoryPath{
NSString* pathFile = NSSearchPathForDirectoriesInDomains
NSString* cachePath = [pathFile stringByAppendingPathComponent:
@"Caches/com.hackemist.SDWebImageCache.default"];
if (cachePath) {
[[NSFileManagerdefaultManager] createDirectoryAtPath:cachePath withIntermediateDirectories:YESattributes:nilerror:nil];
}
NSError* error = nil;
[[NSFileManagerdefaultManager] removeItemAtPath:cachePath error:&error];
[[NSFileManagerdefaultManager] createDirectoryAtPath:cachePath withIntermediateDirectories:YESattributes:nilerror:&error];
}
當然呼叫這個方法也可以實現清除快取的 ;(路徑根據需要修改,這裡的路徑為SDImageCache的快取路徑)。