具体实现
+ (NSArray *)sortSandboxFilesInAscendingOrderOfCreationTime:(NSArray *)fileArray
videoMetadataDirPath:(NSString *)videoMetadataDirPath
{
NSArray *sortedPaths = [fileArray sortedArrayUsingComparator:^(NSString * firstPath, NSString* secondPath) {
//获取相邻两个文件的完整路径
NSString *firstFileUrl = [videoMetadataDirPath stringByAppendingPathComponent:firstPath];
NSString *secondFileUrl = [videoMetadataDirPath stringByAppendingPathComponent:secondPath];
//获取相邻两个文件的文件信息
NSDictionary *firstFileInfo = [[NSFileManager defaultManager] attributesOfItemAtPath:firstFileUrl error:nil];
NSDictionary *secondFileInfo = [[NSFileManager defaultManager] attributesOfItemAtPath:secondFileUrl error:nil];
//获取相邻两个文件的创建时间
id firstFileCreateDate = [firstFileInfo objectForKey:NSFileCreationDate];
id secondFileCreateDate = [secondFileInfo objectForKey:NSFileCreationDate];
//升序
return [firstFileCreateDate compare:secondFileCreateDate];
}];
return sortedPaths;
}
调用:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir = [documentPaths objectAtIndex:0];
NSString *videoMetadataDir = [documentDir stringByAppendingString:@"/videoMetadata"];
NSError *error = nil;
NSArray *metadataXMLList = [[NSArray alloc] init];
metadataXMLList = [fileManager contentsOfDirectoryAtPath:videoMetadataDir error:&error];
if (metadataXMLList.count == 0) {
log4cplus_error("MetadataLog", "%s:Video metadata List is empty",__func__);
return;
}
// 升序排列XML数组
NSArray *sortXMLList = [FileOperatorTool sortSandboxFilesInAscendingOrderOfCreationTime:metadataXMLList videoMetadataDirPath:videoMetadataDir];