Come posso ottenere un NSArray di nomi di file di tutti i file in una determinata directory nella mia app?
-
13-09-2019 - |
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
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:
- Dal Finder, drag & drop la cartella nella navigazione del progetto e la prossima popup rispetto:
- Come si può vedere in questo screenshot, è necessario selezionare Crea i riferimenti delle cartelle .
-
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];