项目小集2019-01-10
2019-01-10 本文已影响2人
Persistent丧心病狂
计算沙盒缓存指定文件大小
/** 获取文件夹下所有文件内容总大小*/
- (void)getFileSize:(NSString *)directoryPath{
//NSFileManager
//attributesOfItemAtPath 指定文件路径,就能获取文件属性
//把所有文件尺寸加起来
//文件管理者
NSFileManager *fileManager = [NSFileManager defaultManager];
//获取大小
long totalSize = 0;
//遍历指定文件夹下的所有文件
NSArray *subPaths = [fileManager subpathsAtPath:directoryPath];
for (NSString *path in subPaths) {
NSString *finalPath = [directoryPath stringByAppendingPathComponent:path];
if ([finalPath containsString:@".DS"]) {
continue;
};
//判断是否是文件夹
//判断文件是否存在,并且判断是否是文件夹
BOOL isDirectory;
BOOL isExist = [fileManager fileExistsAtPath:finalPath isDirectory:&isDirectory];
if (!isExist || isDirectory) {
continue;
};
//获取文件属性
NSDictionary *attr = [fileManager attributesOfItemAtPath:finalPath error:nil];
//获取大小
totalSize = [attr fileSize];
totalSize += totalSize;
}
}
清空caches文件下的文件
#define CachesPath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//清空缓存
//文件管理者
NSFileManager *fileManager = [NSFileManager defaultManager];
//获取cache文件夹下所有路径,不包含子路径的子路径
NSArray *subPaths = [fileManager contentsOfDirectoryAtPath:CachesPath error:nil];
for (NSString *path in subPaths) {
//拼接完整全路劲
NSString *finalPath = [CachesPath stringByAppendingPathComponent:path];
//删除路劲
[fileManager removeItemAtPath:finalPath error:nil];
}
//清空之后更新h数据
[self.tableView reloadData];
}
//抛异常
NSString * reason = [NSString stringWithFormat:@"%s [ling:%d] : 请传入文件夹路径",__func__,__LINE__ + 1];
NSException *exception = [NSException exceptionWithName:@"pathError" reason:reason userInfo:nil];
[exception raise];
//加载bundle 里面的图片加载方式: bundle文件名/图片名
1、contentSize 和contengInSet 没关系
2、tableView的header、footer 也算是tableView的contentSize
3、contentSize 的高度是单元格的高度乘以个数,然后加上头尾试图
如果想要监听控件的子控件的一些方法,点击等,此时如果拿不到子控件,可以成为子控件父控件的代理,这样去监听子控件