0
По какой-то причине этот метод, который я написал, не избавляет от самого старого файла в каталоге, хотя все кажется прекрасным с логической точки зрения. Есть ли что-то тонкое, которого я не хватает?Удалить самый старый файл в каталоге iOS
+(void)removeOldestFileFromDir:(NSURL *)dir forFileManager:(NSFileManager *)fm{
NSError *error = nil;
NSArray *contents = [fm contentsOfDirectoryAtPath:[dir path] error:&error];
NSArray *jpgFiles = [contents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.jpg'"]];
NSDate *oldest = [NSDate date];
NSString *oldestFileName = nil;
for (NSString *f in jpgFiles) {
NSString *photoPath = [[dir path] stringByAppendingPathComponent:f];
NSDate *created = [[fm attributesOfItemAtPath:photoPath error:&error] objectForKey:@"NSFileCreationDate"];
if([created compare:oldest] == NSOrderedAscending){
oldestFileName = [NSString stringWithString:photoPath];
}
}
[fm removeItemAtPath:oldestFileName error:&error];
}
Я проверил ошибку, и это все дни (нуль), и файл, который получает удаление, казалось бы, случайным образом - иногда это самый новый, иногда это еще один.
СПАСИБО! Вероятно, самая тупая ошибка, которую я мог бы сделать, но рад, что это ничего сложнее, я начинал думать, что программирование на iPhone предназначено только для Einstens. – SimonBarker
@SimonBarker: Случилось все мы :) –