Localização dos meus próprios diretórios
-
22-09-2019 - |
Pergunta
Estou tentando entender como criar minha própria árvore de diretório e acessá -la a partir do meu aplicativo.
Estou fazendo algum tipo de programa de aprendizado e quero criar uma estrutura de diretório como esta:
-MyLessonsDirectory
--LessonDirectory_1
---Step_1
---Step_2
---Step_3
--LessonDirectory_2
---Step_1
---Step_2
---Step_3
.
.
and so on
Em cada diretor de "etapa", terei conteúdo específico para essa etapa da lição. O conteúdo é adicionado por mim enquanto se desenvolve. Portanto, não quero criar a estrutura e o conteúdo de dentro do aplicativo, basta acessar -o e ler o conteúdo dos diretórios. Se eu puder criar esse tipo de estrutura e usá -la, será muito fácil criar um bom design que facilite a criação de novas lições no meu aplicativo.
O que não consigo descobrir é onde devo criar esses diretórios na estrutura de arquivos no Xcode e qual é o caminho para esses diretórios do meu aplicativo.
Solução
No iPhone, você só tem acesso aos próprios diretórios de aplicativos. O melhor lugar para colocar diretórios de prática na pasta Documentos no diretório do aplicativo.
Este...
NSString *dp=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
... dá o caminho para a pasta de diretório, que você pode entregar ao NSFilemanager.
Se você quiser ver a estrutura do diretório visualmente, execute o aplicativo no simulador e procure
~/Library/Application Support/iPhone Simulator/User/Applications
O aplicativo estará em uma das pastas com o nome uuid sem sentido. Você pode ver os diretórios e arquivos no Finder.
Eu acrescentaria que o iPhone já possui a maioria dos diretórios que você pode praticamente precisar. Você tem preferências, cache, TMP, documentos etc.
Edit01:
O que eu quero fazer é adicionar conteúdo manualmente antes de iniciar o aplicativo. Em seguida, de dentro do aplicativo, lerei o conteúdo que adicionei antes de iniciar o aplicativo.
Você não pode alterar a estrutura do diretório padrão e não possui absolutamente nenhum controle sobre como o aplicativo ou seus diretórios são instalados. Os aplicativos para iPhone não possuem arquivos de suporte externos de qualquer tipo. Tudo está dentro do pacote de aplicativos.
No entanto, o pacote de aplicativos é realmente apenas um diretório para que você possa encher as coisas dentro dele e copiá -las em um dos diretórios padrão na primeira vez que o aplicativo é executado. Você pode escrever o que quiser no diretório de documentos.
Outras dicas
Você quer olhar para o NSFilemanager para criar diretórios:
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);
}
Quanto a onde criar os diretórios, você pode colocá-lo em ~/Support/-Nome do seu aplicativo-É aqui que você deve armazenar os dados do seu aplicativo se o usuário não exigir acesso a ele. Caso contrário, você deve deixar o usuário decidir onde salvá -lo.
- (NSString *)applicationSupportDirectory {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : NSTemporaryDirectory();
return [basePath stringByAppendingPathComponent:@"MyApplication"];
}