热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

IOS中计算缓存文件的大小判断实例详解

这篇文章主要介绍了IOS中计算缓存文件的大小判断实例详解的相关资料,希望通过本能帮助到大家,需要的朋友可以参考下

IOS中计算缓存文件的大小判断实例详解

IOS中计算缓存文件的大小判断在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正。写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长。 

实例代码:

//获取缓存文件路径
-(NSString *)getCachesPath{
  // 获取Caches目录路径
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES);
  NSString *cachesDir = [paths objectAtIndex:0];
  
  NSString *filePath = [cachesDir stringByAppendingPathComponent:@"com.nickcheng.NCMusicEngine"];
  
  return filePath;
}
///计算缓存文件的大小的M
- (long long) fileSizeAtPath:(NSString*) filePath{
  NSFileManager* manager = [NSFileManager defaultManager];
  if ([manager fileExistsAtPath:filePath]){
    
//    //取得一个目录下得所有文件名
//    NSArray *files = [manager subpathsAtPath:filePath];
//    NSLog(@"files1111111%@ == %ld",files,files.count);
//    
//    // 从路径中获得完整的文件名(带后缀)
//    NSString *exe = [filePath lastPathComponent];
//    NSLog(@"exeexe ====%@",exe);
//    
//    // 获得文件名(不带后缀)
//    exe = [exe stringByDeletingPathExtension];
//    
//    // 获得文件名(不带后缀)
//    NSString *exestr = [[files objectAtIndex:1] stringByDeletingPathExtension];
//    NSLog(@"files2222222%@ ==== %@",[files objectAtIndex:1],exestr);
    
    
    return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
  }
  
  return 0;
}
- (float ) folderSizeAtPath:(NSString*) folderPath{
  NSFileManager* manager = [NSFileManager defaultManager];
  if (![manager fileExistsAtPath:folderPath]) return 0;
  NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];//从前向后枚举器//////
  NSString* fileName;
  long long folderSize = 0;
  while ((fileName = [childFilesEnumerator nextObject]) != nil){
    NSLog(@"fileName ==== %@",fileName);
    NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
    NSLog(@"fileAbsolutePath ==== %@",fileAbsolutePath);
    folderSize += [self fileSizeAtPath:fileAbsolutePath];
  }
  NSLog(@"folderSize ==== %lld",folderSize);
  return folderSize/(1024.0*1024.0);
}
////////////
-(void)ss{
  // 获取Caches目录路径
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES);
  NSString *cachesDir = [paths objectAtIndex:0];
  
  NSLog(@"cachesDircachesDir == %@",cachesDir);
  //读取缓存里面的具体单个文件/或全部文件//
  NSString *filePath = [cachesDir stringByAppendingPathComponent:@"com.nickcheng.NCMusicEngine"];
  NSArray *array = [[NSArray alloc]initWithContentsOfFile:filePath];
  NSLog(@"filePathfilePath%@ ==array==== %@",filePath, array);
  
  
  NSFileManager* fm=[NSFileManager defaultManager];
  if([fm fileExistsAtPath:filePath]){
    //取得一个目录下得所有文件名
    NSArray *files = [fm subpathsAtPath:filePath];
    NSLog(@"files1111111%@ == %ld",files,files.count);
    
    // 获得文件名(不带后缀)
    NSString * exestr = [[files objectAtIndex:1] stringByDeletingPathExtension];
    NSLog(@"files2222222%@ ==== %@",[files objectAtIndex:1],exestr);
  }

}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!


推荐阅读
  • 使用Adobe Illustrator打造独特的家族徽章:牡鹿图腾设计教程
    本文详细介绍了一种基于《权力的游戏》灵感,运用Adobe Illustrator创作独特家族图腾——牡鹿徽章的方法。本教程不仅展示了具体的步骤,还提供了多种技巧,帮助读者创作出既具个人特色又符合设计原则的作品。 ... [详细]
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
  • Xcode 快捷键与实用技巧
    在iOS开发过程中,熟练掌握Xcode的快捷键可以显著提升工作效率,减少不必要的鼠标操作,让开发者更加专注于代码编写。本文将介绍一些常用的Xcode快捷键及技巧,帮助开发者提高开发效率。 ... [详细]
  • 实现‘点击恢复’功能 - Tap-to-Resume Feature in SpriteKit
    了解如何在应用程序从非活动状态返回时,在SpriteKit游戏中添加一个‘点击恢复’的文字提示。 ... [详细]
  • 0-1背包问题的两种解决方法:动态规划与回溯法
    本文探讨了0-1背包问题的两种主要解决方案——动态规划与回溯法,详细介绍了每种方法的实现逻辑、算法流程及具体示例。 ... [详细]
  • 探索PWA H5 Web App优化之路(Service Worker与Lighthouse的应用)
    本文探讨了如何通过Service Worker和Lighthouse工具来优化PWA H5 Web App,旨在提升用户体验,包括提高加载速度、增强离线访问能力等方面。 ... [详细]
  • 本文详细介绍了MySQL在Linux环境下的主从复制技术,包括单向复制、双向复制、级联复制及异步复制等多种模式。主从复制架构中,一个主服务器(Master)可与一个或多个从服务器(Slave)建立连接,实现数据的实时同步。 ... [详细]
  • Redis 教程01 —— 如何安装 Redis
    本文介绍了 Redis,这是一个由 Salvatore Sanfilippo 开发的键值存储系统。Redis 是一款开源且高性能的数据库,支持多种数据结构存储,并提供了丰富的功能和特性。 ... [详细]
  • 本文介绍了一种利用迭代法解决特定方程问题的方法,特别是当给定函数f(x)在区间[x1, x2]内连续且f(x1)0时,存在一个x~使得f(x~)=0。通过逐步细化搜索范围,可以高效地找到方程的根。 ... [详细]
  • 转载网址:http:www.open-open.comlibviewopen1326597582452.html参考资料:http:www.cocos2d-ip ... [详细]
  • 本文通过具体示例探讨了在 C++ 中使用 extern "C" 的重要性及其作用,特别是如何影响编译后的对象文件中的符号名称。 ... [详细]
  • 本文详细介绍了如何在Arch Linux系统中安装和配置FlashTool,包括必要的依赖项安装和udev规则设置,以确保工具能够正确识别USB设备。 ... [详细]
  • 本文探讨了在一个UIViewController中同时存在两个或更多tableView时,若它们的初始Y坐标相同,则可能出现布局异常的问题,并深入解析了automaticallyAdjustsScrollViewInsets属性的作用及其设置方法。 ... [详细]
  • A题简单判断#includeusingnamespacestd;typedeflonglongll;intt;intmain(){cint;whil ... [详细]
  • Flutter 高德地图插件使用指南
    本文档详细介绍了如何在Flutter项目中集成和使用高德地图插件,包括安装、配置及基本使用方法。 ... [详细]
author-avatar
手机用户2602921555
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有