Расположение моих собственных каталогов
-
22-09-2019 - |
Вопрос
Я пытаюсь понять, как создать собственное дерево каталогов и получить к нему доступ из своего приложения.
Я выполняю какую-то программу обучения и хочу создать такую структуру каталогов:
-MyLessonsDirectory
--LessonDirectory_1
---Step_1
---Step_2
---Step_3
--LessonDirectory_2
---Step_1
---Step_2
---Step_3
.
.
and so on
В каждом каталоге «Шаг» у меня будет определенный контент для этого этапа урока.Контент добавляется мной в процессе разработки.Следовательно, я не хочу создавать структуру и содержимое внутри приложения, просто получаю к нему доступ и читаю содержимое каталогов.Если я смогу создать такую структуру и использовать ее, будет очень легко создать красивый дизайн, который позволит легко создавать новые уроки в моем приложении.
Чего я не могу понять, так это где мне следует создать эти каталоги в файловой структуре в xCode и каков путь к этим каталогам из моего приложения.
Решение
На iPhone у вас есть доступ только к собственным каталогам приложений.Лучшее место для размещения каталогов практики в папке «Документы» в каталоге приложения.
Этот...
NSString *dp=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
...дает вам путь к папке каталога, которую вы затем можете передать NSFileManager.
Если вы хотите увидеть структуру каталогов визуально, запустите приложение на симуляторе и посмотрите
~/Library/Application Support/iPhone Simulator/User/Applications
Приложение будет находиться в одной из папок с бессмысленным именем UUID.Вы можете увидеть каталоги и файлы в Finder.
Я бы добавил, что в iPhone уже есть большинство каталогов, которые могут вам практически понадобиться.У вас есть настройки, кеш, tmp, документы и т. д. — все на месте.
Редактировать01:
Я хочу добавить контент вручную перед началом приложения.Затем, из приложения, я прочитаю контент, который добавил перед запуском приложения.
Вы не можете изменить структуру каталогов по умолчанию и не имеете абсолютно никакого контроля над тем, как устанавливается приложение или его каталоги.Приложения для iPhone не имеют каких-либо внешних файлов поддержки.Все находится внутри пакета приложения.
Однако пакет приложения на самом деле представляет собой просто каталог, поэтому вы можете помещать в него разные вещи и копировать их в один из каталогов по умолчанию при первом запуске приложения.Вы можете записать в каталог документов все, что захотите.
Другие советы
Вы хотите посмотреть 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"];
}