Get directory contents in date modified order

后端 未结 5 2205
盖世英雄少女心
盖世英雄少女心 2020-12-04 14:19

Is there an method to get the contents of a folder in a particular order? I\'d like an array of file attribute dictionaries (or just file names) ordered by date modified.

5条回答
  •  执念已碎
    2020-12-04 15:20

    How about this:

    // Application documents directory
    NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
    
    NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:documentsURL
                                                              includingPropertiesForKeys:@[NSURLContentModificationDateKey]
                                                                                 options:NSDirectoryEnumerationSkipsHiddenFiles
                                                                                   error:nil];
    
    NSArray *sortedContent = [directoryContent sortedArrayUsingComparator:
                            ^(NSURL *file1, NSURL *file2)
                            {
                                // compare
                                NSDate *file1Date;
                                [file1 getResourceValue:&file1Date forKey:NSURLContentModificationDateKey error:nil];
    
                                NSDate *file2Date;
                                [file2 getResourceValue:&file2Date forKey:NSURLContentModificationDateKey error:nil];
    
                                // Ascending:
                                return [file1Date compare: file2Date];
                                // Descending:
                                //return [file2Date compare: file1Date];
                            }];
    

提交回复
热议问题