iOS遍历程序内某个文件夹下所有文件的属性
2016-04-26 10:12
344 查看
项目中有个文件管理系统,在做本地文件管理操作的时候,遇到了遍历本地文件的问题
遍历到的文件有些不需要显示,而且需要得到文件的相关属性,在此总结下。
遍历到的文件有些不需要显示,而且需要得到文件的相关属性,在此总结下。
//查找需要遍历文件夹的目录 NSString *kDocumentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject; NSFileManager *fm = [NSFileManager defaultManager]; [fm createDirectoryAtPath: [kDocumentsPath stringByAppendingPathComponent:@"localFile"] withIntermediateDirectories:YES attributes:nil error:nil]; NSString *dir = [NSString stringWithFormat:@"%@/localFile",kDocumentsPath]; NSDirectoryEnumerator *dirEnumerater = [fm enumeratorAtPath:dir]; NSString *filePath = nil; //开始遍历文件 while (nil != (filePath = [dirEnumerater nextObject])) { NSString *msgdir = [NSString stringWithFormat:@"%@/localFile/%@",kDocumentsPath,filePath]; BOOL isDir; //比对文件类型,删除不相关类型的文件 if ([fm fileExistsAtPath:msgdir isDirectory:&isDir]) { if (!isDir) { if ([[filePath lastPathComponent] isEqualToString:@".DS_Store"]) { continue; } if ([[filePath lastPathComponent] isEqualToString:@"index.htm"]) { continue; } if ([[filePath lastPathComponent] isEqualToString:@"index.html"]) { continue; } NSString *fileNameStr = [filePath lastPathComponent]; NSString *filePath = msgdir; //文件修改时间 NSDictionary *attributes = [fm attributesOfItemAtPath:msgdir error:nil]; NSDate *theModifiDate; if ((theModifiDate = [attributes objectForKey:NSFileModificationDate])) { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy.MM.dd HH:mm"]; NSString *dateStr = [formatter stringFromDate:theModifiDate]; NSFileManager* manager = [NSFileManager defaultManager]; long long fileSize; if ([manager fileExistsAtPath:filePath]){ fileSize = [[manager attributesOfItemAtPath:filePath error:nil] fileSize]; } NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:fileNameStr,@"name",filePath,@"path",dateStr,@"time",@(fileSize),@"size", nil]; [localFileArr addObject:dic]; // NSLog(@"\n-----文件名%@\n_______文件路径%@\n======修改时间%@\n-=-=-=-大小 %lld",fileNameStr,filePath,dateStr,fileSize); } } } }
相关文章推荐
- 《Motion Design for iOS》(三)
- iOS应用程序状态图
- iOS 原生二维码的扫描详解(代码)
- iOS 组件化方案探索
- iOS如何把导航默认的返回按钮设置成“返回”
- iOS 相机调用相册打开及图片头像的上传到服务器详解
- iOS 实战技巧
- iOS应用程序状态图
- iOS学习使用NSURLSession
- iOS Button 使用详解
- IOS延时执行函数详解
- 国内90%以上的 iOS 开发者,对 APNs 的认识都是错的
- 【代码笔记】iOS-轮询弹出框
- iOS高级动画:圆形树展开&收起动画
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- iOS开发系列--地图与定位
- iOS开发系列--数据存取
- iOS开发系列--并行开发其实很容易多线程
- iOS开发系列--让你的应用“动”起来