gpt4 book ai didi

objective-c - 按创建日期排序文件 - iOS

转载 作者:可可西里 更新时间:2023-11-01 03:55:27 25 4
gpt4 key购买 nike

我试图获取 i 目录中的所有文件并根据创建日期或修改日期对它们进行排序。那里有很多例子,但我无法让其中任何一个发挥作用。

谁有一个很好的例子,说明如何从按日期排序的目录中获取一组文件?

最佳答案

这里有两个步骤,获取文件列表及其创建日期,并对它们进行排序。

为了方便以后对它们进行排序,我创建了一个对象来保存路径及其修改日期:

@interface PathWithModDate : NSObject
@property (strong) NSString *path;
@property (strong) NSDate *modDate;
@end

@implementation PathWithModDate
@end

现在,要获取文件和文件夹列表(不是深度搜索),请使用:

- (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;
}

请注意,一旦我创建了一个 PathWithDate 对象数组,我就使用 sortUsingComparator 将它们按正确的顺序排列(我选择了降序)。要改用创建日期,请改用 [attr objectForKey:NSFileCreationDate]

关于objective-c - 按创建日期排序文件 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7977664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com