相关文章推荐
苦恼的登山鞋  ·  AttributeError: ...·  1 年前    · 
直爽的毛衣  ·  SQL Server ...·  1 年前    · 
逃课的登山鞋  ·  Unity3D编辑器崩溃(一打开项目过几秒就 ...·  1 年前    · 
博学的烤土司  ·  BAT能帮中国撕掉“AI人才短缺”的标签吗? ...·  2 年前    · 
胆小的签字笔  ·  端口映射转发工具rinetd_51CTO博客 ...·  2 年前    · 
Code  ›  iOS开发按时间排序文件开发者社区
nsstring ios ios开发
https://cloud.tencent.com/developer/article/1117044
爱跑步的佛珠
2 年前
作者头像
清墨
0 篇文章

iOS开发按时间排序文件

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 清墨_iOS分享 > iOS开发按时间排序文件

iOS开发按时间排序文件

作者头像
清墨
发布 于 2018-05-07 15:42:05
1.8K 0
发布 于 2018-05-07 15:42:05
举报

默认的,我们在开发中,写入沙盒里的文件按文件名排序,如0,1,2,3,4,5,a,b,c,.....z等,但有时候咱们需要将里面的文件按创建时间来排序。这时候,怎么做呢?

NSFileManager中的attributesOfItemAtPath:方法可以获取沙盒内的文件信息,其中就有NSFileCreationDate和NSFileModificationDate两个属性分别代表文件创建时间和修改时间,我们可以比较两个文件的这两个属性,实现按创建时间排序或者按修改时间排序。

NSFileManager *fileMgr = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *rootPath = [paths objectAtIndex:0];/*获取根目录*/ NSArray *pathsArr = [fileMgr subpathsAtPath:rootPath];/*取得文件列表*/ NSArray *sortedPaths = [pathsArr sortedArrayUsingComparator:^(NSString * firstPath, NSString* secondPath) { NSString *firstUrl = [rootPath stringByAppendingPathComponent:firstPath];/*获取前一个文件完整路径*/ NSString *secondUrl = [rootPath stringByAppendingPathComponent:secondPath];/*获取后一个文件完整路径*/ NSDictionary *firstFileInfo = [[NSFileManager defaultManager] attributesOfItemAtPath:firstUrl error:nil];/*获取前一个文件信息*/ NSDictionary *secondFileInfo = [[NSFileManager defaultManager] attributesOfItemAtPath:secondUrl error:nil];/*获取后一个文件信息*/ id firstData = [firstFileInfo objectForKey:NSFileCreationDate];/*获取前一个文件创建时间*/ id secondData = [secondFileInfo objectForKey:NSFileCreationDate];/*获取后一个文件创建时间*/ return [firstData compare:secondData];//升序 // return [secondData compare:firstData];//降序 //    这样最后得到的sortedPaths就是我们按创建时间排序后的文件,然后我们就可以根据自己的需求来操作已经排序过的文件了,如删除最先创建的文件等: NSEnumerator *e = [sortedPaths objectEnumerator]; NSString *filename; while ((filename = [e nextObject])) NSRange range = [filename rangeOfString:@"文件后缀.txt"]; if (range.location != NSNotFound) {

 
推荐文章
苦恼的登山鞋  ·  AttributeError: 'numpy.ndarray' object has no attribute 'drop_duplicates' - CSDN文库
1 年前
直爽的毛衣  ·  SQL Server 执行大数据量的sql文件_sql server 执行 大数据sql-CSDN博客
1 年前
逃课的登山鞋  ·  Unity3D编辑器崩溃(一打开项目过几秒就崩溃,无报错,直接弹出上传报错信息)求解决_百度知道
1 年前
博学的烤土司  ·  BAT能帮中国撕掉“AI人才短缺”的标签吗? - OFweek人工智能网
2 年前
胆小的签字笔  ·  端口映射转发工具rinetd_51CTO博客_rinetd 端口转发
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号