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); } }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!