如何按文档目录中的日期对文件进行排序?

时间:2018-01-17 22:10:00

标签: ios objective-c

我有一个UITableView,其中填充了位于NSDocumentDirectory的csv文件列表。 我可以按字母顺序加载和排序文件,但希望按创建日期对它们进行排序。

如何按创建日期过滤文件? 我是否必须操纵文件以包含创建日期,或者它们是否已将其作为属性包含?

这是我访问文件的方式:

paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];
manager = [NSFileManager defaultManager];
NSMutableArray*   fileList = [manager contentsOfDirectoryAtPath:documentsDirectory error:nil];

//--- Listing file by name sort
NSLog(@"\n File list %@",fileList);

//---- Sorting files by extension

NSMutableArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory error:nil].mutableCopy;

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF EndsWith '.csv'"];
filePathsArray =  [filePathsArray filteredArrayUsingPredicate:predicate].mutableCopy;
NSLog(@"\n\n Sorted files by extension %@",filePathsArray);

1 个答案:

答案 0 :(得分:1)

您的问题远非明确,但您可能希望根据创建日期对文件名进行排序。

您有一个文件路径,因此可以为其创建NSURL - 请参阅Apple的documentation。创建NSURL实例后,您可以使用它来获取有关该文件的信息 - 阅读文档中的访问资源值部分。如果您对创建日期感兴趣,可以使用NSURLCreationDateKeydocumentation)获取该内容。

获取所有文件的创建日期,然后根据这些日期对文件名进行排序。如果你遇到困难,请问一个新的问题,显示你已经知道了什么,哪里出了问题等等,而且有人无疑会有所帮助 - 回到这个问题也是一个好主意。

HTH