当前位置: 移动技术网 > IT编程>移动开发>IOS > IOS中计算缓存文件的大小判断实例详解

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

小鹅与红房子,一舟书库,oleanat

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);
  }

}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网