Aquí hay dos pasos para obtener la lista de archivos con sus fechas de creación y ordenarlos.
Con el fin de hacer más fácil para ordenarlos después, se crea un objeto de mantener el camino con su fecha de modificación:
@interface PathWithModDate : NSObject
@property (strong) NSString *path;
@property (strong) NSDate *modDate;
@end
@implementation PathWithModDate
@end
Ahora, para obtener la lista de archivos y carpetas (no una búsqueda profunda), utilice la siguiente:
- (NSArray*)getFilesAtPathSortedByModificationDate:(NSString*)folderPath {
NSArray *allPaths = [NSFileManager.defaultManager contentsOfDirectoryAtPath:folderPath error:nil];
NSMutableArray *sortedPaths = [NSMutableArray new];
for (NSString *path in allPaths) {
NSString *fullPath = [folderPath stringByAppendingPathComponent:path];
NSDictionary *attr = [NSFileManager.defaultManager attributesOfItemAtPath:fullPath error:nil];
NSDate *modDate = [attr objectForKey:NSFileModificationDate];
PathWithModDate *pathWithDate = [[PathWithModDate alloc] init];
pathWithDate.path = fullPath;
pathWithDate.modDate = modDate;
[sortedPaths addObject:pathWithDate];
}
[sortedPaths sortUsingComparator:^(PathWithModDate *path1, PathWithModDate *path2) {
// Descending (most recently modified first)
return [path2.modDate compare:path1.modDate];
}];
return sortedPaths;
}
Tenga en cuenta que una vez que se crea una matriz de objetos PathWithDate, yo uso sortUsingComparator
para ponerlos en el orden correcto (elegí descendente). Para usar la fecha de creación en su lugar, use [attr objectForKey:NSFileCreationDate]
en su lugar.
http://stackoverflow.com/questions/1523793/get-directory-contents-in-date-modified-order es esto? Supongo que puedes usar NSFileCreationDate en lugar de NSFileModificationDate –