Вход/Регистрация
iOS. Приемы программирования
вернуться

Нахавандипур Вандад

Шрифт:

• options — для этого параметра можно передать только одно из двух значений: 0 или NSDirectoryEnumerationSkipsHiddenFiles. Если введено второе значение, то, как понятно из его названия, при построении перечня будут пропущены все скрытые элементы.

• error — ссылка на объект, в который будет записываться информация об ошибке, если методу не удастся выполнить стоящую перед ним задачу. Обычно целесообразно передавать этому методу объекты-ошибки, если есть такая возможность. Если какие-то ошибки и будут возникать, то такие объекты помогут вам более уверенно с ними справляться.

Теперь, когда мы значительно более полно контролируем перечисление элементов, построим перечень всех элементов из каталога. app и выведем даты создания, последнего изменения элемента и последнего обращения к нему. Кроме того, будем выводить информацию о том, является ли этот элемент скрытым, а также есть ли у нас право считывания конкретного файла. Наконец, мы также укажем, являются конкретные элементы каталогами или нет. Приступим:

— (NSArray *) contentsOfAppBundle{

NSFileManager *manager = [[NSFileManager alloc] init];

NSURL *bundleDir = [[NSBundle mainBundle] bundleURL];

NSArray *propertiesToGet = @[

NSURLIsDirectoryKey,

NSURLIsReadableKey,

NSURLCreationDateKey,

NSURLContentAccessDateKey,

NSURLContentModificationDateKey

];

NSError *error = nil;

NSArray *result = [manager contentsOfDirectoryAtURL: bundleDir

includingPropertiesForKeys: propertiesToGet

options:0

error:&error];

if (error!= nil){

NSLog(@"An error happened = %@", error);

}

return result;

}

— (NSString *) stringValueOfBoolProperty:(NSString *)paramProperty

ofURL:(NSURL *)paramURL{

NSNumber *boolValue = nil;

NSError *error = nil;

[paramURL getResourceValue:&boolValue

forKey: paramProperty

error:&error];

if (error!= nil){

NSLog(@"Failed to get property of URL. Error = %@", error);

}

return [boolValue isEqualToNumber:@YES]? @"Yes": @"No";

}

— (NSString *) isURLDirectory:(NSURL *)paramURL{

return [self stringValueOfBoolProperty: NSURLIsDirectoryKey ofURL: paramURL];

}

— (NSString *) isURLReadable:(NSURL *)paramURL{

return [self stringValueOfBoolProperty: NSURLIsReadableKey ofURL: paramURL];

}

— (NSDate *) dateOfType:(NSString *)paramType inURL:(NSURL *)paramURL{

NSDate *result = nil;

NSError *error = nil;

[paramURL getResourceValue:&result

forKey: paramType

error:&error];

if (error!= nil){

NSLog(@"Failed to get property of URL. Error = %@", error);

}

return result;

}

— (void) printURLPropertiesToConsole:(NSURL *)paramURL{

NSLog(@"Item name = %@", [paramURL lastPathComponent]);

NSLog(@"Is a Directory? %@", [self isURLDirectory: paramURL]);

NSLog(@"Is Readable? %@", [self isURLReadable: paramURL]);

NSLog(@"Creation Date = %@",

[self dateOfType: NSURLCreationDateKey inURL: paramURL]);

NSLog(@"Access Date = %@",

[self dateOfType: NSURLContentAccessDateKey inURL: paramURL]);

  • Читать дальше
  • 1
  • ...
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: