Come posso ottenere un NSArray di nomi di file di tutti i file in una determinata directory nella mia app?

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

Domanda

Quello che voglio fare sembra abbastanza semplice: ottenere un array di nomi di file in una determinata "directory" sulla mia app. Ma più giocare con NSFileManager e NSBundle mi ritrovo sempre più perso ... Io voglio solo per ottenere i nomi dei file organizzati in una directory specifica nel mio progetto iPhone Xcode ... Per esempio: la directory in questione è chiamato "immagini" (create utilizzando "Aggiungi> Nuovo gruppo" sotto l'icona del progetto in Xcode) e contiene 10 immagini .png. Sembra semplice, ma sto ottenendo da nessuna parte. Mi farebbe piacere un po 'di aiuto nel trovare la risposta.

D: Come faccio ad avere un NSArray di nomi di file di tutti i file in una determinata directory nella mia app

È stato utile?

Soluzione

Se si desidera la cartella da parte del bundle App, è necessario creare un riferimento cartella all'interno del gruppo di risorse, invece di un gruppo (che apparirà in Xcode come una cartella blu in contrasto con quello giallo) .

Per fare questo, si trascina la cartella da Finder e selezionare la cartella di riferimento quando richiesto.

Una volta che avete, si dovrebbe essere in grado di ottenere il contenuto della cartella con qualcosa del tipo:

NSError *error = nil;

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

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

Altri suggerimenti

La risposta accettata è stato deprecato da anni. Il seguente dovrebbe essere usato al posto.

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

Aggiornamento: @macserv aggiornato la risposta accettata dopo che ho postato questo.

Al giorno d'oggi, questo è come lo fate:

  1. Dal Finder, drag & drop la cartella nella navigazione del progetto e la prossima popup rispetto: entrare descrizione dell'immagine qui
  2. Come si può vedere in questo screenshot, è necessario selezionare Crea i riferimenti delle cartelle .
  3. Fai quello che la soluzione di questo post è che si dice di fare. Voglio dire:

    * NSError errore = nil;

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top