项目小集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 的高度是单元格的高度乘以个数,然后加上头尾试图

如果想要监听控件的子控件的一些方法,点击等,此时如果拿不到子控件,可以成为子控件父控件的代理,这样去监听子控件

上一篇下一篇

猜你喜欢

热点阅读