美文网首页
项目小集2019-01-10

项目小集2019-01-10

作者: Persistent丧心病狂 | 来源:发表于2019-01-10 01:40 被阅读2次

    计算沙盒缓存指定文件大小

    /** 获取文件夹下所有文件内容总大小*/
    - (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 的高度是单元格的高度乘以个数,然后加上头尾试图

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

    相关文章

      网友评论

          本文标题:项目小集2019-01-10

          本文链接:https://www.haomeiwen.com/subject/patorqtx.html