Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

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

Шрифт:

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]);

NSLog(@"Modification Date = %@",

[self dateOfType: NSURLContentModificationDateKey inURL: paramURL]);

NSLog(@"—");

}

— (BOOL) application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

NSArray *itemsInAppBundle = [self contentsOfAppBundle];

for (NSURL *item in itemsInAppBundle){

[self printURLPropertiesToConsole: item];

}

self.window = [[UIWindow alloc]

initWithFrame: [[UIScreen mainScreen] bounds]];

// Точка переопределения для дополнительной настройки после запуска приложения

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

Вывод этой программы получится примерно таким:

Item name = Assets.car

Is a Directory? No Is Readable? Yes

Creation Date = 2013-06-25 16:12:53 +0000

Access Date = 2013-06-25 16:12:53 +0000

Modification Date = 2013-06-25 16:12:53 +0000

Item name = en.lproj

Is a Directory? Yes

Is Readable? Yes

Creation Date = 2013-06-25 16:12:53 +0000

Access Date = 2013-06-25 16:15:02 +0000

Modification Date = 2013-06-25 16:12:53 +0000

Item name = Enumerating Files and Folders

Is a Directory? No Is Readable? Yes

Creation Date = 2013-06-25 16:15:01 +0000

Access Date = 2013-06-25 16:15:04 +0000

Modification Date = 2013-06-25 16:15:01 +0000

Говоря об этом приложении, необходимо отметить, что мы используем метод экземпляра getResourceValue: forKey: error:, относящийся к классу NSURL, чтобы получить значение каждого из ключей, запрашиваемых у файлового менеджера, — например, даты создания и последнего изменения элемента. Эти требования мы передаем файловому менеджеру и приказываем ему выбрать эту информацию. Затем, как только у нас будут нужные URL, воспользуемся вышеупомянутым методом для получения различных свойств от результирующих URL.

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

Четники. Королевская армия

Тимофеев Алексей Юрьевич
Документальная литература:
биографии и мемуары
публицистика
5.00
рейтинг книги
Четники. Королевская армия

Товарищ "Чума"

lanpirot
1. Товарищ "Чума"
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Товарищ Чума

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

Лекарь Империи 7

Карелин Сергей Витальевич
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 7

Французская новелла XX века. 1900–1939

Пруст Марсель
Проза:
классическая проза
6.25
рейтинг книги
Французская новелла XX века. 1900–1939

Династия. Феникс

Майерс Александр
5. Династия
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Династия. Феникс

Русские дети (сборник)

Фрай Макс
Проза:
современная проза
5.60
рейтинг книги
Русские дети (сборник)

Отряд

Валериев Игорь
5. Ермак
Фантастика:
альтернативная история
5.25
рейтинг книги
Отряд

Кодекс Охотника. Книга XVIII

Винокуров Юрий
18. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVIII

Кодекс Охотника. Книга VIII

Винокуров Юрий
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VIII

Глубокий космос

Вайс Александр
9. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Глубокий космос

Я все еще царь. Книга XXXI

Дрейк Сириус
31. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я все еще царь. Книга XXXI

Эпоха Опустошителя. Том III

Павлов Вел
3. Вечное Ристалище
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эпоха Опустошителя. Том III

Печать Пожирателя 3

Соломенный Илья
3. Пожиратель
Фантастика:
городское фэнтези
аниме
сказочная фантастика
фэнтези
попаданцы
5.00
рейтинг книги
Печать Пожирателя 3