В Unix есть библиотека, которая может выполнять операции с файлами. Функции и типы объявлены в названном заголовке glob.h, так что вам это нужно #include. Если открыть терминал, откройте man 3 globсправочную страницу для glob, набрав, вы получите всю информацию, которую вам нужно знать, чтобы использовать функции.
Ниже приведен пример того, как вы можете заполнить массив файлами, которые соответствуют шаблону смещения. При использовании globфункции необходимо помнить несколько вещей.
- По умолчанию
globфункция ищет файлы в текущем рабочем каталоге. Чтобы найти другой каталог, вам нужно добавить имя каталога к шаблону сглаживания, как я делал в своем примере, чтобы получить все файлы /bin.
- Вы несете ответственность за очистку памяти, выделенной
globпутем вызова, globfreeкогда вы закончите со структурой.
В моем примере я использую параметры по умолчанию и не возвращаю сообщение об ошибке. Страница man охватывает все опции на случай, если там есть что-то, что вы хотите использовать. Если вы собираетесь использовать приведенный выше код, я бы предложил добавить его в качестве категории NSArrayили что-то в этом роде.
NSMutableArray* files = [NSMutableArray array];
glob_t gt;
char* pattern = "/bin/*";
if (glob(pattern, 0, NULL, >) == 0) {
int i;
for (i=0; i<gt.gl_matchc; i++) {
[files addObject: [NSString stringWithCString: gt.gl_pathv[i]]];
}
}
globfree(>);
return [NSArray arrayWithArray: files];
Изменить: я создал GIST на GitHub, который содержит приведенный выше код в категории под названием NSArray + Globbing .