Как мне получить NSArray имен файлов всех файлов в данном каталоге в моем приложении?

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

Вопрос

То, что я хочу сделать, кажется достаточно простым:Получите массив имен файлов в заданном "каталоге" в моем приложении.Но чем больше я играю с NSFileManager и NSBundle, тем больше теряюсь...Я просто хочу получить имена файлов, организованных в определенном каталоге в моем проекте iPhone Xcode...Например:Каталог, о котором идет речь, называется "Изображения" (создан с помощью "Добавить > Новая группа" под значком проекта в Xcode) и содержит 10 изображений в формате png.Это кажется простым, но у меня ничего не получается.Я был бы признателен за некоторую помощь в поиске ответа.

Q: Как мне получить NSArray имен файлов всех файлов в данном каталоге в моем приложении?

Это было полезно?

Решение

Если вы хотите, чтобы папка была частью пакета приложений, вам необходимо создать ссылку на папку внутри группы «Ресурсы», а не группы (она будет отображаться в Xcode как синяя папка, а не желтая).

Для этого перетащите папку из Finder и при появлении запроса выберите ссылку на папку.

Как только вы это сделаете, вы сможете получить содержимое папки примерно так:

NSError *error = nil;

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

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

Другие советы

Принятый ответ устарел уже много лет.Вместо этого следует использовать следующее.

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

Обновлять:@macserv обновил принятый ответ после того, как я опубликовал это.

В наши дни вы делаете это именно так:

  1. В Finder перетащите нужную папку в навигатор вашего проекта, и появится следующее всплывающее окно:enter image description here
  2. Как вы можете видеть на этом скриншоте, вам нужно выбрать Создание ссылок на папки.
  3. Делайте то, что вам предписано в решении для этого поста.Я имею в виду:

    NSError * ошибка = ноль;

    NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath] Компонент stringbyappendingpath:@"YourFolder"];

    NSArray *yourFolderContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: ошибка yourFolderPath:&ошибка];

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top