Как получить NSArray файлов всех файлов в данном каталоге в моем приложении?
То, что я хочу сделать, кажется достаточно простым: получить массив имен файлов в данном "каталоге" в моем приложении. Но чем больше я играю с NSFileManager и NSBundle, тем больше я теряюсь... Я просто хочу получить имена файлов, организованных в определенном каталоге в моем iPhone Xcode-проекте... Например: в каталоге, о котором идет речь, (созданные с помощью "Добавить > Новая группа" под иконкой проекта в Xcode) и содержит 10 изображений .png. Кажется простым, но я никуда не ухожу. Я был бы признателен за помощь в поиске ответа.
Q: Как получить NSArray имен файлов всех файлов в данном каталоге в моем приложении?
Ответы
Ответ 1
Если вы хотите, чтобы папка была частью пакета приложений, вам нужно создать ссылку на папку внутри группы "Ресурсы" вместо группы (она будет отображаться в Xcode как синяя папка, а не желтая).
Чтобы сделать это, перетащите папку из Finder и выберите приглашение папки при появлении запроса.
После этого вы сможете получить содержимое папки с чем-то вроде:
NSError *error = nil;
NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath]
stringByAppendingPathComponent:@"YourFolder"];
NSArray *yourFolderContents = [[NSFileManager defaultManager]
contentsOfDirectoryAtPath:yourFolderPath error:&error];
Ответ 2
Принятый ответ устарел уже много лет. Вместо этого следует использовать следующее.
- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error
Обновление: @macserv обновил принятый ответ после того, как я разместил его.
Ответ 3
В наше время, так вы это делаете:
- В Finder перетащите свою папку в навигаторе проектов, и появится следующее всплывающее окно:
![введите описание изображения здесь]()
- Как вы можете видеть на этом снимке экрана, вам нужно выбрать Создать ссылки на папку.
-
Сделайте то, что говорит вам решение для этой публикации. Я имею в виду:
NSError * error = nil;
NSString * yourFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @ "YourFolder" ];
NSArray * yourFolderContents = [[NSFileManager defaultManager] contentOfDirectoryAtPath: ошибка yourFolderPath: & ошибка];