一般APP應(yīng)用里都會(huì)有個(gè)清除緩存的功能普碎,需要顯示緩存文件夾的大小员魏,并且可以清除緩存文件丑蛤。
- (NSInteger)getFileSize:(NSString *)directoryPath{
/*
1. 獲取文件夾路徑
2. 遍歷所有的子文件(不包括隱藏的文件和文件夾本身)
3. 計(jì)算每個(gè)子文件的大小并累加
*/
NSInteger fileSize = 0;
// 獲取文件管理者
NSFileManager *fileMgr = [NSFileManager defaultManager];
// 獲取所有子文件的路徑
NSArray *subPaths = [fileMgr subpathsAtPath:directoryPath];
for (NSString *subPath in subPaths) {
// 拼接文件的全路徑
NSString *path = [directoryPath stringByAppendingPathComponent:subPath];
// 判斷是否為隱藏文件,真機(jī)中可注釋此代碼
if ([subPath containsString:@".DS"]) continue;
// 判斷是否為文件夾
BOOL isDirectory;
BOOL isExist = [fileMgr fileExistsAtPath:path isDirectory:&isDirectory]; // 判斷當(dāng)前是否為文件夾逆趋,并且返回該文件夾是否存在
if (isDirectory || !isExist) continue; // 該文件是文件夾或者該文件夾不存在盏阶,則繼續(xù)
// 獲取文件尺寸
NSDictionary *attr = [fileMgr attributesOfItemAtPath:path error:nil];
// 計(jì)算文件的大小
fileSize += [attr fileSize];
}
return fileSize;
}