Como faço para obter um NSArray de nomes de arquivos de todos os arquivos em um determinado diretório em meu aplicativo?

StackOverflow https://stackoverflow.com/questions/1272042

Pergunta

O que eu quero fazer parece bastante simples: obter uma matriz de nomes de arquivos em um determinado "diretório" em meu aplicativo. Mas quanto mais eu brincar com NSFileManager e NSBundle encontro-me ficar mais perdido ... Eu apenas quero obter os nomes de arquivo dos arquivos organizados em um diretório específico no meu projeto iPhone Xcode ... Por exemplo: o diretório em questão é chamados "imagens" (criado usando "Add> novo Grupo" sob o ícone do projeto no Xcode) e contém 10 imagens .png. Parece simples, mas eu estou chegando a lugar nenhum. Eu apreciaria alguma ajuda para encontrar a resposta.

Q:? Como faço para obter um NSArray de nomes de arquivos de todos os arquivos em um determinado diretório em meu aplicativo

Foi útil?

Solução

Se você deseja que a pasta para ser parte do pacote de App, você precisa criar uma referência pasta dentro do grupo de Recursos, em vez de um grupo (ele vai aparecer no Xcode como uma pasta azul como oposto ao amarelo) .

Para fazer isso, você arrastar a pasta a partir do Finder e selecione a pasta de referência quando for solicitado.

Uma vez que você tem isso, você deve ser capaz de obter o conteúdo da pasta com algo como:

NSError *error = nil;

NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath]
                            stringByAppendingPathComponent:@"YourFolder"];

NSArray  *yourFolderContents = [[NSFileManager defaultManager] 
                                contentsOfDirectoryAtPath:yourFolderPath error:&error];

Outras dicas

A resposta aceita foi preterido por anos agora. O seguinte deve ser utilizado.

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error

Update: @macserv atualizou a resposta aceita depois que eu postei isso.

Hoje em dia, este é como fazê-lo:

  1. A partir do Finder, Drag & Drop sua pasta no navegador do seu projeto eo próximo pop-up vai aparecer: enter descrição da imagem aqui
  2. Como você pode ver nessa imagem, você tem que selecionar Criar referências de pasta .
  3. Do que a solução para este post é que você diz para fazer. Quero dizer:

    NSError * Erro = nil;

    NSString * yourFolderPath = [[[NSBundle] mainBundle resourcePath] stringByAppendingPathComponent: @ "yourfolder"];

    NSArray * yourFolderContents = [[NSFileManager defaultManager] erro yourFolderPath:: contentsOfDirectoryAtPath & erro];

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top