Расположение моих собственных каталогов - PullRequest
2 голосов
/ 23 февраля 2010

Я пытаюсь понять, как создать свое собственное дерево каталогов и получить к нему доступ из своего приложения.

Я занимаюсь какой-то программой обучения и хочу создать структуру каталогов, подобную этой:

-MyLessonsDirectory
--LessonDirectory_1
---Step_1
---Step_2
---Step_3
--LessonDirectory_2
---Step_1
---Step_2
---Step_3
.
.
and so on

В каждом "Step" -директории у меня будет определенный контент для этого шага урока. Содержание добавлено мной при разработке. Следовательно, я не хочу создавать структуру и контент из приложения, просто получить к нему доступ и читать содержимое каталогов. Если я смогу создать такую ​​структуру и использовать ее, будет очень легко создать красивый дизайн, который позволит легко создавать новые уроки в моем приложении.

Что я не могу понять, так это то, где я должен создать эти каталоги в файловой структуре в xCode и каков путь к этим каталогам из моего приложения.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2010

Вы хотите взглянуть на NSFileManager для создания каталогов:

NSFileManager *fm = [NSFileManager defaultManager];
NSError *error;
BOOL result = [fm createDirectoryAtPath:@"path....." withIntermediateDirectories:YES attributes:nil error:&error];
if(result){
   NSLog(@"success!");
} else {
   NSLog(@"error: %@",error);
}

Что касается того, где создавать каталоги, вы можете поместить их в ~ / Application Support / - Имя вашего приложения - Здесь вы должны хранить данные своего приложения, если пользователю не требуется доступ к ним. В противном случае вы должны позволить пользователю решить, где его сохранить.

- (NSString *)applicationSupportDirectory {

       NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
       NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : NSTemporaryDirectory();
       return [basePath stringByAppendingPathComponent:@"MyApplication"];
}
1 голос
/ 23 февраля 2010

На iPhone у вас есть доступ только к собственным каталогам приложений. Лучшее место для размещения практических каталогов в папке «Документы» в каталоге приложения.

Этот ...

NSString *dp=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

... дает вам путь к папке каталога, которую вы можете затем передать NSFileManager.

Если вы хотите увидеть структуру каталогов визуально, запустите приложение на симуляторе и посмотрите на

~/Library/Application Support/iPhone Simulator/User/Applications

Приложение будет в одной из папок с ненормальным именем UUID. Вы можете увидеть каталоги и файлы там в Finder.

Я бы добавил, что в iPhone уже есть большинство каталогов, которые вам могут понадобиться. У вас есть настройки, кэш, TMP, документы и т. Д. Все на месте.

Edit01:

Что я хочу сделать, это добавить контент вручную, прежде чем начать приложение. Затем изнутри приложение я буду читать содержание, которое я добавлено перед запуском приложения.

Вы не можете изменять структуру каталогов по умолчанию, и у вас нет абсолютно никакого контроля над тем, как устанавливается приложение или его каталоги. Приложения iPhone не имеют каких-либо внешних файлов поддержки. Каждая вещь находится внутри пакета приложения.

Тем не менее, пакет приложений на самом деле является просто каталогом, поэтому вы можете помещать вещи в него и копировать их в один из каталогов по умолчанию при первом запуске приложения. Вы можете написать что угодно в каталог документов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...