10
votes

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

Ce que je veux faire semble assez simple: obtenir un tableau de noms de fichiers dans un "répertoire" donné sur mon application. Mais plus je joue avec NsfileManager et Nsbundle, je me trouve plus perdu ... Je veux juste obtenir les noms de fichiers des fichiers organisés dans un répertoire spécifique dans mon iPhone Xcode Project ... Par exemple: le répertoire en question est appelé "images" (créé à l'aide de "Ajouter> Nouveau groupe" sous l'icône du projet en Xcode) et contient 10 images .png. Cela semble simple mais je ne deviens nulle part. J'apprécierais de l'aide pour trouver la réponse.

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


0 commentaires

3 Réponses :


29
votes

Si vous souhaitez que le dossier soit fait partie de l'appuie sur l'application, vous devez créer une référence de dossier dans le groupe Ressources, au lieu d'un groupe (il apparaîtra en Xcode sous forme de dossier bleu par opposition au jaune) .

Pour ce faire, vous faites glisser le dossier de Finder et sélectionnez Référence de dossier lorsque vous y êtes invité.

Une fois que vous aurez cela, vous devriez pouvoir obtenir le contenu du dossier avec quelque chose comme: xxx


1 commentaires

Dans mon cas, StringByAppendingingString: @ "VOTRE fichier" ne fonctionne pas car le chemin final manque un "/". Je suggère d'utiliser à la place StringByAppingerPathcomponent: @ "VOTRE fichier". Cela inclura le / le caractère. L'ensemble de la ligne devrait être: Nstring * TonFolderDePath = [[[[[[[NsBundle MainBundune] ResourcePath] StringByAppingerPathcomponent: @ "TheFolder"];



9
votes

La réponse acceptée a été obsolète depuis des années maintenant. Les éléments suivants doivent être utilisés à la place.

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


0 commentaires

1
votes

De nos jours, voici comment vous le faites:

  1. à partir du Finder, faites glisser votre dossier dans le navigateur de votre projet et la prochaine pop up apparaîtra: Entrez la description de l'image ici
  2. Comme vous pouvez le constater dans cette capture d'écran, vous devez sélectionner Créer des références de dossiers .
  3. faire quelle est la solution pour ce post vous dit de faire. Je veux dire:

    NSError * Erreur = nul;

    nsstring * VotrefolderPath = [[[[[NsBundle MainBundune] ResourcePath] StringByAppingerPathcomponent: @ "VosFolder"];

    Nsarray * VosFolderContents = [[[[NsfileManager DefaultManager] CULTIESSIONSOFDIRECTORYATPATH: Erreur de votre insuffisance: & Erreur];


0 commentaires