Comment puis-je obtenir un NSArray de noms de fichiers de tous les fichiers dans un répertoire donné dans mon application?

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

Question

Ce que je veux faire semble assez simple: Obtenez un tableau de noms de fichiers dans un donné « répertoire » sur mon application. Mais plus je joue avec mon NSFileManager et NSBundle je me retrouve à obtenir plus perdu ... Je veux juste obtenir les noms des fichiers organisés dans un répertoire spécifique dans mon projet iPhone Xcode ... Par exemple: le répertoire en question est appelé « images » (créé en utilisant « Ajouter> Nouveau groupe » sous l'icône du projet dans Xcode) et contient 10 images .png. Il semble simple mais je reçois nulle part. Je vous remercie de l'aide pour trouver la réponse.

Q: Comment puis-je obtenir un NSArray de noms de fichiers de tous les fichiers dans un répertoire donné dans mon application

Était-ce utile?

La solution

Si vous voulez que le dossier fasse partie du paquet App, vous devez créer une référence de dossier dans le groupe des ressources, au lieu d'un groupe (il apparaîtra dans Xcode comme un dossier bleu par opposition au jaune) .

Pour ce faire, vous faites glisser le dossier du Finder et sélectionnez la référence du dossier lorsque vous êtes invité.

Une fois que vous avez, vous devriez être en mesure d'obtenir le contenu du dossier avec quelque chose comme:

NSError *error = nil;

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

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

Autres conseils

La réponse acceptée a été dépréciée depuis des années. Ce qui suit doit être utilisé à la place.

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

Mise à jour: @macserv mis à jour la réponse acceptée après que je posté.

De nos jours, voici comment vous le faites:

  1. Dans le Finder, un glisser-déposer votre dossier dans le navigateur de votre projet et la prochaine fenêtre contextuelle apparaîtra: entrer la description d'image ici
  2. Comme vous pouvez le voir dans cette capture d'écran, vous devez sélectionner Créer des références de dossier .
  3. Faites ce que la solution pour ce poste est vous dit de faire. Je veux dire:

    NSError * = erreur nulle;

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top