В 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 .