欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-12-18 10:26:46
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);
  }

}

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

上一篇:

下一篇: