Wie kann ich eine NSArray von Dateinamen aller Dateien in einem bestimmten Verzeichnis in meiner app bekommen?

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

Frage

Was ich tun möchte, scheint einfach genug: einen Array von Dateinamen in einem bestimmten „Verzeichnis“ auf meiner App Hol dir. Aber je mehr ich spielen, um mit NSFileManager und NSBundle finde ich mich immer mehr verloren ... Ich will nur die Dateinamen der Dateien in einem bestimmten Verzeichnis in meinem iPhone Xcode-Projekt organisiert bekommen ... Zum Beispiel: Das Verzeichnis, in Frage genannt „Bilder“ (erstellt mit „Add> New Group“ unter dem Projektsymbol in Xcode) und enthalten 10 .png Bilder. Es scheint einfach, aber ich bin immer nirgends. Ich würde etwas Hilfe schätzen, die Antwort zu finden.

F: Wie erhalte ich eine NSArray von Dateinamen aller Dateien in einem bestimmten Verzeichnis in meiner app

War es hilfreich?

Lösung

Wenn Sie die Ordner wollen Teil des App-Bundle zu sein, müssen Sie einen Ordner Referenz in der Ressourcen-Gruppe erstellen, statt eine Gruppe (es wird in Xcode als blauen Ordner zeigt in Bezug auf den gelben gegen) .

Um dies zu tun, ziehen Sie die Ordner aus dem Finder und wählen Sie Ordner Referenz, wenn Sie dazu aufgefordert.

Sobald Sie, dass, sollten Sie in der Lage sein, den Inhalt des Ordners mit etwas zu bekommen, wie:

NSError *error = nil;

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

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

Andere Tipps

Die akzeptierte Antwort ist schon seit Jahren veraltet. Folgendes sollte stattdessen verwendet werden.

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

Update: @macserv die akzeptierte Antwort aktualisiert, nachdem ich gepostet.

Heute, das ist, wie Sie es tun:

  1. Klicken Sie im Finder Drag & Drop Ihre Ordner in Ihrem Projekt-Navigator und die nächste Popup wird angezeigt: eingeben Bild Beschreibung hier
  2. Wie Sie in diesem Screenshot sehen können, müssen Sie wählen Ordner erstellen Referenzen .
  3. Sie, was die Lösung für diesen Beitrag ist sagt Ihnen zu tun. Ich meine:

    NSError * error = nil;

    NSString * yourFolderPath = [[[NSBundle main] resourcePath]                             stringByAppendingPathComponent: @ "Yourfolder"];

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top